This is where the FLO SDK will be organized and kept track of. Each SDK should implement the following structure:
The FLO SDK should include all of the following:
- RPC interface connecting to a local or remote FLO RPC daemon.
- Cross-platform (sqlite3 or NoSQL) database to store transaction data.
- Web-facing API for database.
- Client interface connecting to web-facing database APIs.
Nice to have:
- Alexandria / OIP API functions.
- Flotorizer / SharedSecret functions.
- Ability to connect to a pre-funded remote RPC.
- SSL connection between the local client and server.
RPC interface connecting to a local or remote FLO RPC daemon
This should include every RPC call available in the FLO RPC list. It should also handle all errors that could be returned by the FLO RPC.
Cross-platform sqlite3 or NoSQL database to store transaction data
The SDK should have an option to store transaction data in a local database. Optionally, it should have “plugins” to recognize different protocols popular on the network.
Web-facing API for database
The database should be accessible via a web-facing API. This API, if on a web-facing server, should host data for remote nodes connecting to it. Otherwise it will have its own local API over the local network as usual.
Client SDK for connecting to web-facing database APIs
The client should be able to connect to a web-facing API to receive database information. This would be considered a “light” client – one that doesn’t have the blockchain or any database information – it relies on an external (trusted 3rd party or self-hosted) server for data.
Alexandria / OIP API functions
Alexandria and OIP functions should be exposed in the library to make it easy to build into the Alexandria platform.
Flotorizer / SharedSecret functions
Same as above.
Ability to connect to a pre-funded remote RPC
Some clients won’t have funds or any way to get funds, but will still want to post things on the blockchain. There should be some process of acquiring a
funded key from a web-facing server that allows authorized clients to post to the blockchain after authenticating with their
SSL connection between the local client and server
The local client and server should have a secure tunnel to communicate with.