The Isolated Server is a standalone Zilliqa seed node specifically configured to allow instantaneous blockchain operations (e.g., transaction creation) outside of any network (e.g., Zilliqa Mainnet). This makes it a very useful tool for dApp development and testing.
These are the available documentation on Isolated Server:
- Isolated server design and API list in ZIP-6
- Isolated server build instructions in Zilliqa Github Wiki
- Isolated server launch instructions in Ceres documentation
The Isolated Server is built as a binary file
isolatedServer (from source
isolated_server.cpp) separate from
zilliqa (from source
main.cpp). While majority of the underlying source code is shared between the two CPP files,
isolated_server.cpp is primarily different from
main.cpp in these ways:
- It instantiates an IsolatedServer object. The IsolatedServer class inherits from LookupServer and thus we are able to reuse most of the JSON-RPC API handler functions defined in LookupServer.
- It does not instantiate a Zilliqa object, and therefore the
isolatedServerprocess does not start listening to port 33133 for socket messages. All interactions are done through the IsolatedServer JSON-RPC port only (and additionally through the websocket port if enabled).
Apart from these differences, developers just need to take note of the other features supported by the Isolated Server as described in detail in the other available documentation, namely:
- Two ways to artificially produce blocks (i.e., using either automated block time or the
- Ability to pre-generate accounts from an input JSON file
- Ability to pre-load existing blockchain data during launch
- Ability to pause the Isolated Server using the
TogglePauseAPI (which prevents automated block generation and disables
In the Isolated Server there are no properly-formed DS or Tx blocks. While the artificially-produced blocks conform to the Tx block template, all the Tx block fields are not set properly. Only the transaction information is set in the block.