IdA Node (Interconnected dApp Node) is certainly the most important technology developed by Scrypta. It is the heart of all data writing and reading operations, as well as the main source of data for the dApps. IdA Node is a NodeJS application written in TypeScript with a multitude of features:
Blockchain explorer: it keeps track of all transactions and all blocks, it can be used like a visual block explorer.
Relay: it is used by client-side (scrypta-core) to send transactions to the network.
Data explorer: useful as an interface for reading information written on the blockchain; this is one of the most important features for dApp development.
IPFS: interface for the distributed file system (InterPlanetary File System), useful for uploading and downloading data.
Replication: IdA Node is the main replica of all information and files uploaded to the Scrypta Blockchain.
Wallet: it can also work as a "client", that is, it can perform the same operations as the scrypta-core clients, simply by calling APIs and passing the necessary information.
Trustlink: Trustlink operations are managed internally in IdaNode, including the creation and writing of information by a Trustlink.
Other features in development:
dApp engine: the inclusion of the library that allows you to serve the dapps loaded directly on the blockchain. At the moment it is only possible to upload them. The dApp engine is an independent module.
P2P network: the inclusion of the library that allows to exchange information in real time between IdaNodes and between clients, so as to have an internal messaging system to Scrypta. At the moment this is also an independent module.
The first called script is the
Index.ts file, this file verifies that the wallet and the database are reachable, otherwise it takes care to start them and wait until they are. This system guarantees a certain degree of automation in the event that some process should be interrupted unexpectedly.
After verifying that everything is reachable, the script starts checking the collections and the indexes are existing, otherwise it initializes the database.
After that, if in the
SYNC parameter is
true it starts to synchronize all the blockchain and all the data inserted inside.
At the same time the Express application serves the APIs, which will be immediately available, no matter if the sync is complete. Clearly in this case the available data set will not correspond to the last block.
The Express application is defined in the
App.ts file and from there you can see all the various calls. These will be analyzed in the following chapters.
All endpoints can be tested through Postman. The collection is available by clicking on the following button: