GithubHelp home page GithubHelp logo

fioprotocol / fio-devhub Goto Github PK

View Code? Open in Web Editor NEW
6.0 12.0 13.0 18.98 MB

FIO Developer Hub

Home Page: https://developers.fioprotocol.io

License: Apache License 2.0

HTML 24.25% Ruby 0.17% CSS 70.38% JavaScript 5.20%

fio-devhub's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fio-devhub's Issues

Part time Technical writer for FIO tech team

The FIO Core Tech team is looking for a part-time technical writer who has experience with GitHub and writing in Markdown. FIO is the Foundation for Interwallet Operability, a non-profit industry group dedicated to the pursuit of blockchain usability through the FIO Protocol. Learn more about FIO here: https://fioprotocol.io

You will spend 4–6 hours a week working with the FIO Core Tech team to maintain, curate, and expand the content on the FIO Developer Portal (located at https://developers.fioprotocol.io). Content is composed in Markdown and is part of a Jekyll collection. To learn more, check out the public GitHub repository: https://github.com/fioprotocol/fio-devhub

Are you a technical writer who’s familiar with docs-as-code and would like to pick up some extra work? Are you interested in cryptocurrency and learning about the community-governed protocols that are revolutionizing the usability of crypto worldwide? If so, please contact Edward Rotthoff, Software Architect and Senior Blockchain Developer at FIO Protocol, directly on LinkedIn (https://www.linkedin.com/in/edward-rotthoff-84872a86/) or by email ([email protected]).

Exchange node upgrade process

Need to update the node install and upgrade process for wallets and exchanges. This should include either replacing or updating the code at fio.start.

API Error codes

  • Clean up error codes (and make generic) some 403s look incorrect.
  • Add 202 response to all actions (make this generic). See old site.

Node Setup info

If transaction processing is timing out: the nodeos setting that will likely fix that is max-transaction-time = 100 or add --max-transaction-time 100 to startup command

Create integration checklist

Create a checklist for integrators that details the functionality and qa checks that should be completed for the different FIO features.

Add example of FIO Pub Key validation using checksum process

Something like:

Validation using checksum

More rigorous checksum code may also be used to validate a FIO Address. This validation process consists of:

  1. Confirming the first three characters of the key are 'FIO'
  2. Base58 decoding of the char
  3. ...

[NEED TO COMPLETE, include JS and C++ sample code]

Writeup on authority checks with FIO Requests

Describe the auth checks with OBT and FIO Request. For example, the contract checks that the fio address in the payee (in requests) or payer (in responses) is matched to the pubkey in the transaction's signature

Add more detail on indexing transactions

There are several methods for indexing transactions depending on what type of node is being accessed. Need to integrate information from:
https://github.com/fioprotocol/fio-go/tree/master/_example/_blocks
https://github.com/fioprotocol/fiosdk_typescript/tree/master/examples/FioTransactionHistory

High level process that may be of use:

  1. call '/chain/get_info' to get the latest irreversible block's heght "last_irreversible_block_num" (which never rolls back)
  2. call '/chain/get_block' for each block height with {"block_num_or_id":height} to get "transactions" array, which contains all transactions on the block
  3. loop "transactions" array and get "transactions"[i]
  4. check whether "transactions"[i]."status" == "executed", if yes go to next step, if no skip this transaction
  5. get "transactions"[i]."trx"."transaction"."actions"[0]."data" as "data"
  6. check whether "data"."payee_public_key" is our deposit address, if yes then "data"."actor" is the sender address,"data"."amount"/1000000000 is the amount of FIO sent

Need to include note on msig transactions:
If you are running a private node without a history plugin it's still possible, but there is one problem with multi-signature transactions that can complicate things. Any blocks containing a multi-signature transaction will give a different data structure for the transaction, requiring special handling. The msig transactions will not have any structure at all, only a string with the transaction ID. For these it will be necessary to also call the get_transaction API using both the block number (non-history nodes require a block hint) and the transaction ID.

Compatibility matrix

Need better documentation that describes which versions of the chain/contracts/API/SDKs work together.

Document different mapping options

Requested update to Dev hub:

  • We may want a FIP that would allow a FIO public key to not receive tokens. Meaning the blockchain would reject an attempt to send to this public key. It's an edge case, for sure, but here's the scenario: Exchange sets up deposits@exchange for sending out all FIO Requests and each request has individual public addresses for those deposits. If a user sends FIO directly to deposits@exchange, a FIO mapping that can't be removed or changed or it will break the encryption process, they won't know who to send those tokens to and it creates a support headache for them. If, instead, the chain just refused to accept the tokens on that public key, the problem is avoided.
  • Wallets: bad idea to ever change the FIO public mapping. It breaks the default encryption scheme by using the wrong public key.
  • Exchanges: it can make sense to to allow for mapping changes because there may be two different security models (wallets) in place. One controls individual user account private keys, one controls the FIO side of things (creating mappings, sending FIO requests, etc). In this scenario, they don't want the deposit accounts to own the FIO responsibilities for user1@exchange because then they would need that FIO private key for managing anything related to that FIO public address. As long as they never send a FIO request from user1@exchange (because the lookup of that public key would not map correctly to the on chain actor account for that encrypted request), it should work.

@eric Butz [Dapix] that an okay summary of what we learned on the call? If so, can you update the docs appropriately? I think this nuance is a really important one (Don't change the FIO mapping! ...unless it's okay to do so) for our integration partners to understand because if they don't FIO functionality breaks.

Known Issues

Document the known issues and helpful hints with SDKs, APIs, and chain.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.