namillum
Version:
Bubble Protocol SDK
58 lines (45 loc) • 2.55 kB
Markdown
---
id: core-isolated-server
title: Isolated Server
keywords:
- core
- isolated
- server
description: Core protocol design - 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:
- Isolated server design and API list in
[ZIP-6](https://github.com/Zilliqa/ZIP/blob/master/zips/zip-6.md)
- Isolated server build instructions in
[Zilliqa Github Wiki](https://github.com/Zilliqa/Zilliqa/blob/master/ISOLATED_SERVER_setup.md)
- Isolated server launch instructions in
[Ceres documentation](../../../developers/developer-toolings/dev-tools-ceres.md)
## 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.