Initiatives:
Knowledgebase: https://kb.fioprotocol.io
Overview
We have received feedback from wallets and exchanges that the integration experience is somewhat complex. This initiative tracks discussions and suggestions regarding documentation and software updates that can be undertaken to improve the integration experience.
Who is the customer of this initiative?
Wallets, exchanges, apps and other integrators.
What problem of your customer are you trying to solve?
Ultimately, we need to make integrating FIO easier. This can be broken down into two parts:
Improve integration documentation
Simplify FIO to make it easier to integrate
How will this product/initiative solve this problem?
This initiative will focus on improving Devhub integration documentation:
Create simplified Getting Started documentation
Pull in Knowledgebase docs
Pull in or link to external documentation.
Simplify FIO, for example:
Reduce the complexity of the FIO actions available in the SDK
Reduce the number of upgrades required by integrators
Update Integration Documentation
The goal include:
Update devhub with more dev examples and information for the API, chain, and SDKs.
Focus on the integration process and create smaller, step-by-step examples
Link to or pull in development information from the knowledge base
Rearrange Devhub content to make some of it more “integration process centric”
General UX update to Devhub
For current list of other Devhub improvements refer to: https://github.com/fioprotocol/fio-devhub/issues
Devhub project plan:
Figure overall UX and user flow |
| David Gold suggested we migrate to target specific integrators: Wallet Integration, Exchange Integration, etc. We would pull out common tasks into shared pages, but would gear the integration language to be specific to the different use cases. Suggested outline: https://docs.google.com/document/d/1fu0KJr_pYg75WJN7zgtvx459vKUzPh2iFWfGhAsTpFM/edit?ts=60888ed6 |
Building an API node and upgrade process (for wallets and exchanges) |
| |
Update content |
| |
Integration guide |
| |
Restructuring of nav |
| From David: https://docs.google.com/document/d/1fu0KJr_pYg75WJN7zgtvx459vKUzPh2iFWfGhAsTpFM/edit?ts=60888ed6 |
BP Voting and Proxying |
| |
Support landing page |
| |
Pub/Priv Keys |
| |
EOSIO content |
| https://developers.eos.io/welcome/latest/introduction-to-eosio/index https://developers.eos.io/manuals/eosjs/latest/how-to-guides/index |
Devhub Readme |
| https://github.com/eosdac/eosdacio-website/blob/master/docs/02-create-page.md |
Ecommerce Integrators page |
| |
FIO Dev Guide |
| Example: https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md |
Transactions |
| |
Certification |
| |
Multicasting |
| |
BP Fee setting |
| |
Address/Domain renewal |
| |
API Error Codes |
| |
History API |
| |
FIO Versioning |
| |
OBT and Request auth checks |
| |
general BP info |
| |
Integration Checklist |
| |
Indexing transactions |
| |
FIO Contract development |
| |
Mapping options |
| |
Compatibility matrix |
| |
Known issues |
| |
FIO Chain Overview |
| |
FIO Glossary |
| |
Devnet setup |
|
Simplify FIO Integration
It also must be easier to integrate FIO using the SDKs and interact with the FIO API directly. Simplification of FIO integration can be broken down into 3 areas:
FIO API
SDKs and third-party libraries
Serialization and encryption
FIO API
FIO chain code has diverged from EOSIO core code making it difficult to “plug and play” with existing EOSIO tools
Support for transaction-based API endpoints creates release overhead and could cause confusion
Similarly, the need to update the chain code for ever new getter adds release overhead.
Change how max_fee works to include a buffer on the current fee set by the BPs
SDKs and third-party libraries
We would like to reduce the number of upgrades required by integrators
Integrators should be able to access all Mainnet features, including getters and contract actions, without having to upgrade.
SDK updates should only be required for bug fixes and when breaking changes in the API are introduced.
A proliferation of getters and api endpoints increases the size and complexity of the SDK
Serialization and encryption
The encryption used in FIO Requests and OBT Record actions is non-standard
There are issues with the fiojs library including encryption libraries, difficulty of integrating with other EOSIO tools, and maintaining a copy of eosjs
See: fiojs