All Projects → getamis → Istanbul Tools

getamis / Istanbul Tools

Licence: lgpl-3.0
Istanbul BFT tools

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Istanbul Tools

The Journal Of Blockchain
区块链自媒体、专注区块链技术学习和实践、IPFS/Filecoin、Bitcoin、Ethereum、EOS、Cosmos、区块链、白皮书、Coinmarketcap、Coindesk、Safe Network、Telegram、Docker、社会治理、经济激励
Stars: ✭ 63 (-21.25%)
Mutual labels:  blockchain, ethereum
Colonyjs
The Colony JavaScript client
Stars: ✭ 72 (-10%)
Mutual labels:  blockchain, ethereum
Web Sdk
Portis Web SDK
Stars: ✭ 65 (-18.75%)
Mutual labels:  blockchain, ethereum
Subspace
Library for Reactive Dapp Development with auto syncing and caching capabilities
Stars: ✭ 57 (-28.75%)
Mutual labels:  blockchain, ethereum
Marketprotocol
Ethereum based derivatives trading protocol creating digital tokens for any asset
Stars: ✭ 78 (-2.5%)
Mutual labels:  blockchain, ethereum
Zknifty
🎴Zero-knowledge non-fungible tokens on Ethereum using zk-SNARKs
Stars: ✭ 59 (-26.25%)
Mutual labels:  blockchain, ethereum
Cava
ConsenSys core libraries for Java & Kotlin
Stars: ✭ 71 (-11.25%)
Mutual labels:  blockchain, ethereum
Awesome Ethereum Cn
Web3.js、Solidity、Truffle开发教程及以太坊开发资源汇总
Stars: ✭ 54 (-32.5%)
Mutual labels:  blockchain, ethereum
Nethereum
Ethereum .Net cross platform integration library
Stars: ✭ 1,191 (+1388.75%)
Mutual labels:  blockchain, ethereum
Use Dai
💸 A curated, community compiled list of everywhere you can use the decentralized Dai stablecoin
Stars: ✭ 74 (-7.5%)
Mutual labels:  blockchain, ethereum
Etherscan Ml
Python Data Science and Machine Learning Library for the Ethereum and ERC-20 Blockchain
Stars: ✭ 55 (-31.25%)
Mutual labels:  blockchain, ethereum
Portis Sdk
Portis Web SDK [DEPRECATED, PLEASE USE OUR NEW SDK: https://github.com/portis-project/web-sdk]
Stars: ✭ 78 (-2.5%)
Mutual labels:  blockchain, ethereum
Kubereum
Kubernetes + Ethereum = Kubereum!!!
Stars: ✭ 55 (-31.25%)
Mutual labels:  blockchain, ethereum
Shitaibin.github.io
博客:Go语言、区块链
Stars: ✭ 59 (-26.25%)
Mutual labels:  blockchain, ethereum
Cryptolights
Live visualisation of blockchain transactions for popular cryptocurrencies
Stars: ✭ 54 (-32.5%)
Mutual labels:  blockchain, ethereum
Minimal
Modular Ethereum client
Stars: ✭ 69 (-13.75%)
Mutual labels:  blockchain, ethereum
Trace
Supply chain transparency platform proof-of-concept based on the Ethereum blockchain ✍️
Stars: ✭ 52 (-35%)
Mutual labels:  blockchain, ethereum
Udacity Blockchain Developer Nanodegree
The road so far on Udacity Blockchain Developer Nanodegree
Stars: ✭ 53 (-33.75%)
Mutual labels:  blockchain, ethereum
Smart Contracts
Ethereum smart contracts for security and utility tokens
Stars: ✭ 1,187 (+1383.75%)
Mutual labels:  blockchain, ethereum
Ethnode
Run an Ethereum node (Geth or Openethereum) for development
Stars: ✭ 74 (-7.5%)
Mutual labels:  blockchain, ethereum

istanbul-tools

Test Status

istanbul-tools contains tools for configuring Istanbul BFT (IBFT) network, integration tests for both IBFT Geth and Quorum, and load testing utilities for IBFT Geth.

Build istanbul command line interface

$ make
$ ./build/bin/istanbul --help

NAME:
   istanbul - the istanbul-tools command line interface

USAGE:
   istanbul [global options] command [command options] [arguments...]

COMMANDS:
     extra    Istanbul extraData manipulation
     setup    Setup your Istanbul network in seconds
     help, h  Print this message

GLOBAL OPTIONS:
   --help, -h  show help

COPYRIGHT:
   Copyright 2017 The AMIS Authors

extra subcommand

Click here to expand

extra helps generate RLP-encoded extra data in ExtraData field of the genesis block. Extra data is composed of signer vanity and IstanbulExtra. IstanbulExtra is defined as follows:

type IstanbulExtra struct {
    Validators    []common.Address  // Validator addresses
    Seal          []byte            // Proposer seal 65 bytes
    CommittedSeal [][]byte          // Committed seal, 65 * len(Validators) bytes
}

Note: Seal and CommittedSeal are not considered in genesis block.

$ ./build/bin/istanbul extra

NAME:
   istanbul extra - Istanbul extraData manipulation

USAGE:
   istanbul extra command [command options] [arguments...]

COMMANDS:
     decode  To decode an Istanbul extraData
     encode  To encode an Istanbul extraData

OPTIONS:
   --help, -h  show help

extra examples

encode subcommand

Encode the given file to extra data.

$ ./build/bin/istanbul extra encode --config ./cmd/istanbul/example/config.toml

OUTPUT:
Encoded Istanbul extra-data: 0x0000000000000000000000000000000000000000000000000000000000000000f89af85494475cc98b5521ab2a1335683e7567c8048bfe79ed9407d8299de61faed3686ba4c4e6c3b9083d7e2371944fe035ce99af680d89e2c4d73aca01dbfc1bd2fd94dc421209441a754f79c4a4ecd2b49c935aad0312b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0
decode subcommand

Decode extra data from the given input.

$ ./build/bin/istanbul extra decode --extradata 0x0000000000000000000000000000000000000000000000000000000000000000f89af85494475cc98b5521ab2a1335683e7567c8048bfe79ed9407d8299de61faed3686ba4c4e6c3b9083d7e2371944fe035ce99af680d89e2c4d73aca01dbfc1bd2fd94dc421209441a754f79c4a4ecd2b49c935aad0312b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0

OUTPUT:
vanity:  0x0000000000000000000000000000000000000000000000000000000000000000
validator:  0x475cc98b5521ab2a1335683e7567c8048bfe79ed
validator:  0x07d8299de61faed3686ba4c4e6c3b9083d7e2371
validator:  0x4fe035ce99af680d89e2c4d73aca01dbfc1bd2fd
validator:  0xdc421209441a754f79c4a4ecd2b49c935aad0312
seal: 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

setup subcommand

Click here to expand

When --nodes --verbose flags are given, a static-nodes.json template as well as the validators' node keys, public keys, and addresses are generated. When --docker-compose is given, a docker-compose.yml for the validators is generated. When --save flag is given, all generated configs will be saved. Use Quorum when --quorum flag is given.

Note: the generated static-nodes.json template are set with IP 0.0.0.0, please make according change to match your environment.

setup examples

$ ./build/bin/istanbul setup --num 4 --nodes --verbose
validators
{
    "Address": "0x5e5d0e2b80005a7e1f93044ddd64b2df0f8e488d",
    "Nodekey": "e5f9b868651ea8f4883744f2753ead9dfcdf7b1d8a96de0e733f406938dca1eb",
    "NodeInfo": "enode://8759a8a6921be78ec4e66ec77ae26ba9b3b1a51d1f83b16683c6f25e5a1d95a4d[email protected]0.0.0.0:30303?discport=0"
}
{
    "Address": "0x1b706dd850229813ee7c4002cd2fedc91380bb5a",
    "Nodekey": "2c13ee666b2ce617bf1e0d7fe7c8f058be27ea3a1aaabbfc63570a65f0bdae38",
    "NodeInfo": "enode://40dd1e7ba45e5bcd242420986d9d03133ce49399c6197e43254d523e94f547532[email protected]0.0.0.0:30303?discport=0"
}
{
    "Address": "0xdfdf27987b042bb3706d3a7c4b60e80a645744de",
    "Nodekey": "8bbf54eace8738f9d3ee90d5b949951f43d89acdb4b883d9188a141bdcd0153e",
    "NodeInfo": "enode://d188378b3eef56584b8ebd3da3ad579d39d23511943573cdeae5b8a37b5df22c3[email protected]0.0.0.0:30303?discport=0"
}
{
    "Address": "0x5950b8f849daf1a78e119648c79111721353df59",
    "Nodekey": "9179c038483a2547c39f77f121065231d84a9c8d9bd044e1ddc19f653a23c751",
    "NodeInfo": "enode://d855be48593e6f2dd6201334e9381a2f01dac4a847385a393b1f664503b7b7020[email protected]0.0.0.0:30303?discport=0"
}



static-nodes.json
[
    "enode://8759a8a6921be78ec4e66ec77ae26ba9b3b1a51d1f83b16683c6f25e5a1d95a4d[email protected]0.0.0.0:30303?discport=0",
    "enode://40dd1e7ba45e5bcd242420986d9d03133ce49399c6197e43254d523e94f547532[email protected]0.0.0.0:30303?discport=0",
    "enode://d188378b3eef56584b8ebd3da3ad579d39d23511943573cdeae5b8a37b5df22c3[email protected]0.0.0.0:30303?discport=0",
    "enode://d855be48593e6f2dd6201334e9381a2f01dac4a847385a393b1f664503b7b7020[email protected]0.0.0.0:30303?discport=0"
]



genesis.json
{
    "config": {
        "chainId": 2017,
        "homesteadBlock": 1,
        "eip150Block": 2,
        "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "eip155Block": 3,
        "eip158Block": 3,
        "istanbul": {
            "epoch": 30000,
            "policy": 0
        }
    },
    "nonce": "0x0",
    "timestamp": "0x5a093aac",
    "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000f89af854945e5d0e2b80005a7e1f93044ddd64b2df0f8e488d941b706dd850229813ee7c4002cd2fedc91380bb5a94dfdf27987b042bb3706d3a7c4b60e80a645744de945950b8f849daf1a78e119648c79111721353df59b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0",
    "gasLimit": "0x47b760",
    "difficulty": "0x1",
    "mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
    "coinbase": "0x0000000000000000000000000000000000000000",
    "alloc": {
        "1b706dd850229813ee7c4002cd2fedc91380bb5a": {
            "balance": "0x446c3b15f9926687d2c40534fdb564000000000000"
        },
        "5950b8f849daf1a78e119648c79111721353df59": {
            "balance": "0x446c3b15f9926687d2c40534fdb564000000000000"
        },
        "5e5d0e2b80005a7e1f93044ddd64b2df0f8e488d": {
            "balance": "0x446c3b15f9926687d2c40534fdb564000000000000"
        },
        "dfdf27987b042bb3706d3a7c4b60e80a645744de": {
            "balance": "0x446c3b15f9926687d2c40534fdb564000000000000"
        }
    },
    "number": "0x0",
    "gasUsed": "0x0",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
$ ./build/bin/istanbul setup --help
NAME:
   istanbul setup - Setup your Istanbul network in seconds

USAGE:
   istanbul setup [command options] [arguments...]

DESCRIPTION:
   This tool helps generate:

    * Genesis block
    * Static nodes for all validators
    * Validator details

    for Istanbul consensus.


OPTIONS:
   --num value       Number of validators (default: 0)
   --nodes           Print static nodes template
   --verbose         Print validator details
   --quorum          Use quorum
   --docker-compose  Print docker compose file
   --save            Save to files

Testing

Click here to expand

Integration tests

Istanbul BFT Geth Integration tests

Istanbul BFT Quorum Integration tests

Load tests

Istanbul-BFT-Benchmarking

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].