It is possible to build Saito applications without installing anything, but debugging is easier with a local node. Saito requires 4GB RAM and a recent version of NodeJS (14). You can then download and compile Saito as follows:
git clone https://github.com/saitotech/saito-lite cd saito-lite npm install npm run init
The final initialization script will ask if you wish to join the public network (saito.io) or setup a private node for testing and development. Whichever option you choose, the script will auto-configure your server. You may then start your node by running:
Congratulations! Saito should be running on your machine. You can test that everything is working by visiting http://localhost:12101/wallet and checking the application loads. For information on changing your default host/port/protocol as well as the other configuration options, please see our page on Customizing your Saito Installation: Advanced Server Configuration Options.
If you run into problems during the development and setup process, please write us at firstname.lastname@example.org or send us message us on Saito Telegram. Our goal is to make it as easy to join the network as possible.
Protocol and Documentation
Saito consists of several layers:
- Layer 1 – core blockchain
- Layer 2 – applications / modules
- Layer 3 – in-application widgets
At the lowest layer we have the code which runs the underlying blockchain. This code be found in the /lib/saito directory in your Saito release. It controls how blocks are produced, how consensus works, and how transactions are sent between peers. A quick reference to the base layer objects and functions applications can access is here.
Applications run atop the blockchain and in-the-browser. They can communicate on-chain over the blockchain and off-chain through peer-to-peer messaging channels. Most applications inherit from a class in the /lib/templates directory that provides most of the default functionality. This makes building on Saito a lot like building on Ruby-on-Rails: most of the work is already done for you. If you are interested in application development, we recommend starting with our tutorial series. Documentation of how applications work and are structured can be found here.
On the highest level, individual applications like the Saito Forum, Saito Arcade and Saito Wallet allow other modules / applications to add controls and widgets to their interface. You can also write an application that other developers can extend. This is the least documented layer in Saito because modules are developing so quickly and the standards for inter-module communications are improving rapidly. The best documentation for individual modules is their module source code. If you want to do something specific and are having trouble getting started, please reach out to our development team.
Other Saito Clients
The reference implementation of the Saito protocol is defined by the code in our saito-lite repository un well as the Saito whitepaper. If you are interested in coding software that connects to existing nodes, documentation on how to do so is available in our Saito REST API that is available on Github.
If you are a developer interested in working on cutting-edge and massively scalable software, please get in touch. The problems we are solving with scaling in our RUST client involve heavy parallel-processing and working very close to the metal on performance. If you are interested in these sets of problems we would love to hear from you.
Please reach out to us if you have any trouble or questions or suggestions.