Isolated Server


Overview

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:

Implementation Details

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 isolatedServer process 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 IncreaseBlocknum API)
  • 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 TogglePause API (which prevents automated block generation and disables CreateTransaction API)
info

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.