/poly

Poly is a blockchain system providing cross-chain interactive services. it had support five kinds of heterogeneous chain protocol, Bitcoin/Ethereum/Neo/Ontology/Switcheo/BSC/Heco

Primary LanguageGoGNU Lesser General Public License v3.0LGPL-3.0

Poly

Version 1.0

Discord

English | 中文

Welcome to the official Go implementation of the Poly Network !

Poly is a blockchain system providing cross-chain interactive services. Your transaction on chain X can be relayed to other chain Y and executed, we call this kind of transaction as cross-chain transaction. Any chain which implement Poly cross-chain interactive protocol can join the poly ecosystem. For now, we have Ethereum, Ontology, Switcheo, Neo, Bitcoin and BSC. You can transfer asset from one chain to another. Like ETH, BTC, ONT, ONG, ERC20, OEP4, NEO, BSC etc, and any message between different chains.

Features

  • Highly optimized transaction processing speed
  • Multiple encryption algorithms supported
  • Quick block generation time 1s
  • Support for heterogeneous and homogeneous chains
  • Supports cross chain transaction consistency and finality
  • Supports variety of heterogeneous chain protocol (Bitcoin/Ethereum/Neo/Ontology/Cosmos-SDK/BSC)

Install from Binaries

Downloading a specific version from the release section.

Build From Source

Prerequisites

  • Golang version 1.15 or later

Build

Note that the code in the master branch may not be stable.

git clone https://github.com/polynetwork/poly.git
cd poly
make all

Build poly binary with docker

git clone https://github.com/polynetwork/poly.git
cd poly
make build

# Build with a commit hash or tag

COMMIT=v1.0.0 make build

After building the source code successfully, you should see the executable program poly.

Build Docker Image

You can build a poly docker image pre-installed the ploy executable program.

make dockerImg

You would find the image polynetwork/poly and you can run a container from it.

Run Poly

The Poly CLI can run nodes for the MainNet, TestNet and local PrivateNet.

Before you can run the node you will need to create a wallet file. A wallet file named wallet.dat can be generated by running

./poly account add -d

Here's an example of the directory structure

$ tree
└── poly
    ├── poly
    └── wallet.dat

MainNet Sync Node

Before you start node, you need to register your account to be a relayer to get permission to send transactions to Poly.

You can run an Poly MainNet node built from the source code with:

./poly

TestNet Sync Node

Before you start node, you need to register your account to be a relayer to get permission to send transactions to Poly.

You can run an Poly TestNet node built from the source code with:

./poly --networkid 2

Local PrivateNet

The Poly CLI allows you to run a local PrivateNet on your computer. To start the PrivateNet built from the source code with:

./poly --testmode  

Contributions

Contributors to Poly are very welcome! Before beginning, please take a look at our contributing guidelines. You can open an issue by clicking here.

If you have any issues getting setup, open an issue or reach out in the Poly Network Discord.

License

The Poly source code is available under the LGPL-3.0 license.