Skip to content

ponta9/Sidechains-SDK

 
 

Repository files navigation

Sidechains-SDK Beta

Sidechains are an innovation devised to enable blockchain scalability and extensibility by creating parallel platform and application layers that are bound to the mainchain without imposing a significant burden. Each sidechain implements the desired features and custom business logic, rooted in a protocol that offers a way to transfer coins from and to the original mainchain and each sidechain.

Zendoo is a unique sidechain and scaling solution developed by Horizen. The Zendoo sidechain SDK is a framework that supports the creation of sidechains and their custom business logic, with the Horizen public blockchain as the mainchain. A detailed description of the concept, the protocol, and details about mainchain/sidechain interaction can be found in the Zendoo Whitepaper.

Beta Features

  • The Cross-Chain Transfer Protocol (CCTP) implementation to support sidechain declaration, forward transfers, backward transfer requests, and withdrawal certificates
  • Basic zk-SNARK threshold signature verification circuit to authenticate withdrawal certificates See zendoo-sc-cryptolib
  • Full implementation of the Latus Proof-of-Stake consensus protocol
  • Built-in transactions enabling transfers of coins within the sidechain
  • HTTP API for basic node operations
  • Extensible transactions and boxes allowing the introduction of custom logic and data within the sidechain
  • Extensible node API interface
  • Command-line tool to interact with the sidechain node
  • Sidechain Bootstrapping Tool to create and configure a new sidechain network
  • Graphical Wallet allowing easy sidechain creations, forward transfers to sidechain, list of existing sidechains and more: Sphere by Horizen.

Supported platforms

The Zendoo Sidechain SDK is available and tested on Linux and Windows (64bit).

For more details see zendoo-sc-cryptolib

Requirements

  • Java 8 or newer (Java 11 recommended)
  • Scala 2.12.10+
  • Python 2.7
  • Maven

Interaction

Each node has an API server bound to the address:port specified in a configuration file. The node also starts the Swagger server.

There are two ways to interact with the node:

  1. Swagger web interface. Open the path to the API server in your browser. By default, it's localhost:9085.
  2. Use any HTTP client that supports POST requests. For example, curl or Postman.

Project Structure

The project has a Maven module structure and consists of 4 modules:

  1. SDK - The core of the sidechain SDK
  2. ScBootstrappingTool - A tool that supports the creation of a sidechain configuration file that allows the synchronization with the mainchain network
  3. Simple App - An example application without any specific custom logic that runs a node. The node can be connected to the mainchain network or isolated from it
  4. Q/A - Sidechain Test Framework for sidechain testing via RPC/REST commands

Examples

You can find an example of a sidechain implementation without any custom business logic here: Simple App. A detailed description of how to set up and run a sidechain node with a connection to the mainchain can be found here.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 70.5%
  • Java 20.8%
  • Python 8.3%
  • Other 0.4%