Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Effsy
    @Effsy
    Hello, cool project you have here - I've been experimenting and am having an issue.
    I'm trying to get a proof for a transaction on ganache-cli from the ion-cli: with getProof http://localhost:8545/ txhash but i'm getting an error Error: retrieving block: server returned non-empty transaction list but block header indicates no transactions
    Any ideas?
    Friedrich
    @maxrobot
    @effsy Let me investigate, can you post the commands you entered in the Ion-CLI and the configuration of your ganache-cli please :)
    Effsy
    @Effsy
    const HDWalletProvider = require('truffle-hdwallet-provider')
    const assert = require('assert')
    
    const DEFAULT_GAS_PRICE_GWEI = 5
    const GAS_LIMIT = 6.5e6
    const DEFAULT_MNEMONIC = 'candy maple cake sugar pudding cream honey rich smooth crumble sweet treat'
    
    function truffleConfig ({
      mnemonic = DEFAULT_MNEMONIC,
      gasPriceGWei = process.env.GAS_PRICE_GWEI || DEFAULT_GAS_PRICE_GWEI,
      gas = GAS_LIMIT,
      optimizedEnabled = true,
      urlRinkeby = 'https://rinkeby.infura.io/',
      urlMainnet = 'https://mainnet.infura.io',
      urlDevelopment = 'localhost',
      portDevelopment = 8545,
      solcVersion = '0.5.2',
      solcUseDocker = false
    } = {}) {
      assert(mnemonic, 'The mnemonic has not been provided')
      console.log(`Using gas limit: ${gas / 1000} K`)
      console.log(`Using gas price: ${gasPriceGWei} Gwei`)
      console.log(`Optimizer enabled: ${optimizedEnabled}`)
      console.log('Using default mnemonic: %s', mnemonic === DEFAULT_MNEMONIC)
      const gasPrice = gasPriceGWei * 1e9
    
      const _getProvider = url => {
        return () => new HDWalletProvider(mnemonic, url)
      }
    
      return {
        networks: {
          development: {
            host: urlDevelopment,
            port: portDevelopment,
            gas,
            gasPrice,
            network_id: '*'
          },
          mainnet: {
            provider: _getProvider(urlMainnet),
            network_id: '1',
            gas,
            gasPrice
          },
          rinkeby: {
            provider: _getProvider(urlRinkeby),
            network_id: '4',
            gas,
            gasPrice
          }
        },
        compilers: {
          solc: {
            version: solcVersion,
            docker: solcUseDocker,
            settings: {
              optimizer: {
                enabled: optimizedEnabled,
                runs: 200
              }
            }
          }
        }
      }
    }
    
    module.exports = truffleConfig()
    I'm running a service that will send transactions to ganache
    Friedrich
    @maxrobot
    so I assume you are running ganache-cli --development to run locally?
    Effsy
    @Effsy
    And then from the ion-cli, just running getProof http://localhost:8545/ txhash with the transaction
    yes
    Friedrich
    @maxrobot
    could you try first:
    connectToClient http://localhost:8545
    then try to get the proof without passing the url of the testrpc
    Effsy
    @Effsy
    I get the same error
    Here's the full output:
    Error: retrieving block: server returned non-empty transaction list but block header indicates no transactions
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x79aeb2]
    
    goroutine 1 [running]:
    github.com/ethereum/go-ethereum/core/types.(*Block).Transactions(...)
        /home/effsy/go/src/github.com/ethereum/go-ethereum/core/types/block.go:276
    github.com/clearmatics/ion/ion-cli/utils.GenerateProof(0x911d20, 0xc4200a0010, 0xc4200f2380, 0xd18e7b108ae79795, 0xa79b85809faaffda, 0x1ce7fd2666e5164d, 0x336d49fec8dcb852, 0x1, 0xc42033e000, 0xc42023db30, ...)
        /home/effsy/go/src/github.com/clearmatics/ion/ion-cli/utils/proof.go:33 +0x282
    github.com/clearmatics/ion/ion-cli/cli.getProof(0xc420181540, 0xc42002cc30, 0x42)
        /home/effsy/go/src/github.com/clearmatics/ion/ion-cli/cli/rpc.go:108 +0xb4
    github.com/clearmatics/ion/ion-cli/cli.Launch.func14(0xc42033e000)
        /home/effsy/go/src/github.com/clearmatics/ion/ion-cli/cli/cli.go:614 +0x62
    github.com/abiosoft/ishell.(*Shell).handleCommand(0xc4201420f0, 0xc42000c180, 0x2, 0x2, 0xc42023dc78, 0xc42023dc80, 0x20)
        /home/effsy/go/src/github.com/abiosoft/ishell/ishell.go:278 +0x2cc
    github.com/abiosoft/ishell.handleInput(0xc4201420f0, 0xc42000c180, 0x2, 0x2, 0xc42020a400, 0xc420286060)
        /home/effsy/go/src/github.com/abiosoft/ishell/ishell.go:232 +0x4d
    github.com/abiosoft/ishell.(*Shell).run(0xc4201420f0)
        /home/effsy/go/src/github.com/abiosoft/ishell/ishell.go:211 +0x228
    github.com/abiosoft/ishell.(*Shell).Run(0xc4201420f0)
        /home/effsy/go/src/github.com/abiosoft/ishell/ishell.go:111 +0x39
    github.com/clearmatics/ion/ion-cli/cli.Launch()
        /home/effsy/go/src/github.com/clearmatics/ion/ion-cli/cli/cli.go:718 +0x1293
    main.main()
        /home/effsy/go/src/github.com/clearmatics/ion/ion-cli/main.go:13 +0x25
    Friedrich
    @maxrobot
    I cannot replicate your error, could you try using the testrpc configuration provided in the Ion repository. To use this please cd into GO_PATH/src/github.com/clearmatics/ion and checkout the master branch.
    Following this run, npm install followed by npm run testrpc. Note you will need to kill the other instance of ganache-cli first.
    Shirikatsu
    @Shirikatsu
    @Effsy Which version of ganache-cli are you running? We are aware that some versions do not have stable replications of txTrie construction and will not return the required data in order to construct a transaction proof.
    Effsy
    @Effsy
    Sorry for the delay, yes I've just updated ganache-cli and the proofs are generating now
    Thanks for the help @maxrobot @Shirikatsu
    Shirikatsu
    @Shirikatsu
    @Effsy Fantastic! Glad to be of aid :)
    neogeo1988
    @neogeo1988
    hi all, I try to build in-clion go v.1.8 is missing math/bites ..and the build fails...i have try 1.9/1.11/1.7...and the solve the maths/bits problem...and the latest one i get (github.com/clearmatics/ion/ion-cli/utils
    utils/trie.go:65:29: undefined: ethdb.NewMemDatabase
    utils/trie.go:94:11: undefined: ethdb.NewMemDatabase
    make: * [Makefile:27: build] Error 2)
    neogeo1988
    @neogeo1988
    so the problem was you need go-etherum(version 1.8.13)
    kambit
    @kambit
    @Shirikatsu Hello, I study the Ion (https://github.com/clearmatics/ion), and I find it builds for Ethereum with PoA consensus algorithm. I want to set up if for Ethereum with PoW consensus algorithm. How can I do? And is it possible to set up Ion for Quorum chain with Raft consensus algorithm?
    neogeo1988
    @neogeo1988
    hi i'm trying to build https://github.com/clearmatics/simpleshares ....and i had a lot of errors from docker build...after fixing the build and get to b. Deploy SimpleShares Chaincode ...i get a lot of errors..Has anyone build this in the last few months???
    my latest erros is: ../../../../../hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric-ca/util/csp.go:47:8: cannot convert nil to type csr.KeyRequest
    ../../../../../hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric-ca/util/csp.go:132:37: cannot use req.KeyRequest (type *csr.KeyRequest) as type csr.KeyRequest in argument to getBCCSPKeyOpts

    i have fabric-sdk-go: master:05ffa0a5ae5db0890341fdec498ccc5e684a6ea5 and fabric 1.3.0
    Shirikatsu
    @Shirikatsu
    @kambit Currently the only validation contracts that have been implemented are for Clique PoA and IBFT. We are hoping that the library will continue to expand with community engagement in the various other consensus mechanisms as they each are different in implementation. We are looking to possibly tackle the PoW algorithm some time in the future. There is not yet validation contracts for Raft, however there are existing ones for IBFT which may work for other flavours of Quorum.
    @neogeo1988 Sorry for lateness of reply. The simpleshares repo is unmaintained and was a demo repository to allow an easy set up of a fabric network which may be out of date. It's separate from the Ion project. It did replicate the fabric tutorials quite closely and you may be able to set up a similar demo network by following the v1.3 fabric docs.
    neogeo1988
    @neogeo1988
    ty for the info!
    kambit
    @kambit
    @Shirikatsu Thanks for your reply!
    kambit
    @kambit

    @Shirikatsu Hi, I get an error when I invoke SubmitBlock. After invoking SubmitBlock method, and checking the transaction receipt, the status is "0x0". which means some error in this transaction.
    parameters for SubmitBlock are:
    _chainId: chainB id(the same as the RegisterChain parameter _chainId)
    _rlpUnsignedBlockHeader: ion_cli get UnsignedBlockHeader
    _rlpSignedBlockHeader: ion_cli get SignedBlockHeader
    _storageAddr: storage contract address by deploy EthereumStore.sol

    UnsignedBlockHeader is: f9021aa013fe15da35b4bc5851e4d7b475fbb2b10b8d8ab3e7a8accda80441204c53364ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01d2ca9d1c74019628bf4ad0d3433fe4dc2f14e14cd69564c4199e36a9ade8738a044a8280c9ccaacf600861694803b08f21907e838b42b3aab5d7ebb7b05cbd2aaa0a5fd92b082d95adc7f20f3958848bc41b6fd1c2620dce23d903119392d67aff1b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000080000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000260874637ed0c01b1c18257bd845d42fbe6a0d883010814846765746888676f312e31302e34856c696e757800000000000000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000
    SignedBlockHeader is:
    f9025ca013fe15da35b4bc5851e4d7b475fbb2b10b8d8ab3e7a8accda80441204c53364ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01d2ca9d1c74019628bf4ad0d3433fe4dc2f14e14cd69564c4199e36a9ade8738a044a8280c9ccaacf600861694803b08f21907e838b42b3aab5d7ebb7b05cbd2aaa0a5fd92b082d95adc7f20f3958848bc41b6fd1c2620dce23d903119392d67aff1b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000080000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000260874637ed0c01b1c18257bd845d42fbe6b861d883010814846765746888676f312e31302e34856c696e75780000000000000049789c5898f556b6496ecccb92a8cd49518117d31a11ce4e5d102ed6959814090f72d312b76d6eb11f62489de7505ecaa7a794a77cb5de6c2752764f2910d99a01a00000000000000000000000000000000000000000000000000000000000000000880000000000000000

    Can you help check what I do is wrong? Thanks!

    Shirikatsu
    @Shirikatsu
    @kambit Hey. What were your previous steps prior to this? Which validation contract are you verifying your blocks with? Prior to block submission make sure that you have registered the validation contract against your Ion.sol contract, registered the chain with your chosen genesis and then submit the block.
    kambit
    @kambit
    @Shirikatsu Hi, This is my full steps up to submitBlock:

    chainB Id: 0x2eb66993ca9529fde635eef4fcc251573a604f0fc84f25db5c7e139a3d192bde

    hash of genesis block(invoke fire from Trigger transaction block hash): 0x61b141b2b3cea3660b04ddf5073001238e72d0650cad917428643ac5c9f7a8a1

    connect with geth

    connectToClient http://127.0.0.1:8545

    Add an account

    addAccount me /home/ubuntu/data0/keystore/UTC--2019-07-26T05-47-16.454289425Z--4a971347a403961837978090998a97e4bd4c63e4

    add Trigger contract

    addContractInstance Trigger /home/ubuntu/Go/src/github.com/clearmatics/ion/contracts/functional/Trigger.sol

    deploy

    deployContract Trigger me 1000000
    ==> deploy contrct address: 0x9Cbf0E03E44Bb2C670AbfD38cCBb47169362dB15

    transactionMessage

    transactionMessage Trigger fire me 0x9Cbf0E03E44Bb2C670AbfD38cCBb47169362dB15 0 1000000
    ==> transaction hash: 0xcb50d1c2c49883eeac174b17cd5e2cc713b4f21836fecea02b0bd39cc03da8a6
    ==> block number: 513
    ==> block hash:0x61b141b2b3cea3660b04ddf5073001238e72d0650cad917428643ac5c9f7a8a1

    get RLP-encoded

    getBlockByNumber_Clique http://127.0.0.1:8545 513
    ==>
    Signed Block:
    f9025ea061b141b2b3cea3660b04ddf5073001238e72d0650cad917428643ac5c9f7a8a1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e612e3ec95d235d35f4265c939f2a3fc42de4e96745c261cd1455ad03c94e004a0906c79301ba3a38c534ac66fdade97388171aa8c85a688b005d78ae6f39dbee2a08cd11238516edba8a0ea40bd10bce64742113a4a715d3b6d1d4119617ca5f94fb90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000800000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000080008000000000000282020187697e0f3bf13b658257bd845d440a6ab861d883010814846765746888676f312e31302e34856c696e757800000000000000a042445ae83b5d6d22deb53de690cf256b07b2c7efb5f50875465f744e8ae6f041564c96333123a4fefa308cda05e4aaaafb5066401c65ba6dbc247a7fdb179b00a00000000000000000000000000000000000000000000000000000000000000000880000000000000000
    Unsigned Block:
    f9021ca061b141b2b3cea3660b04ddf5073001238e72d0650cad917428643ac5c9f7a8a1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e612e3ec95d235d35f4265c939f2a3fc42de4e96745c261cd1455ad03c94e004a0906c79301ba3a38c534ac66fdade97388171aa8c85a688b005d78ae6f39dbee2a08cd11238516edba8a0ea40bd10bce64742113a4a715d3b6d1d4119617ca5f94fb90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000800000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000080008000000000000282020187697e0f3bf13b658257bd845d440a6aa0d883010814846765746888676f312e31302e34856c696e757800000000000000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000

    connect with geth

    connectToClient http://127.0.0.1:8545

    Add an account

    addAccount me /home/ubuntu/data0/keystore/UTC--2019-07-26T05-47-16.454289425Z--4a971347a403961837978090998a97e4bd4c63e4

    add ion contract

    addContractInstance ion /home/ubuntu/Go/src/github.com/clearmatics/ion/contracts/Ion.sol

    deploy ion

    deployContract ion me 1000000
    ChianA id: 0xaf32c716536cdc65de1f95a7987347b37705559d13c665bf292631a6db394f6d
    ==> Ion contract address: 0x2b7Bf752Ba104aBf02f1e49948c70Be6713faBDB

    add ethstore contract

    addContractInstance ethstore /home/ubuntu/Go/src/github.com/clearmatics/ion/contracts/storage/EthereumStore.sol

    deploy ethstore

    deployContract ethstore me 100000000
    Ion contract address

    deploy ethstore

    deployContract ethstore me 100000000
    Ion contract address: 0x2b7Bf752Ba104aBf02f1e49948c70Be6713faBDB
    ==> ethstore contract address: 0xd93c9Ffddf60bE7ccef688dd913211894dBbcd25

    add clique contract

    addContractInstance clique /home/ubuntu/Go/src/github.com/clearmatics/ion/contracts/validation/Clique.sol

    deploy clique

    deployContract clique me 7581563
    Ion contract address: 0x2b7Bf752Ba104aBf02f1e49948c70Be6713faBDB
    ==> clique contract address: 0xC9A36533ef62b9F1a9daAA2e1A0eB5E028140Fe2

    call register function

    transactionMessage clique register me 0xC9A36533ef62b9F1a9daAA2e1A0eB5E028140Fe2 0 7581563
    ==> transaction hash: 0x7969a7584d74af12a871911b26c65a3e4403bf3a5e2a06aaa0e61e9903fdc323

    call

    transactionMessage clique RegisterChain me 0xC9A36533ef62b9F1a9daAA2e1A0eB5E028140Fe2 0 7581563
    ChainB id: 0x2eb66993ca9529fde635eef4fcc251573a604f0fc84f25db5c7e139a3d192bde
    _validators address: 0xC9A36533ef62b9F1a9daAA2e1A0eB5E028140Fe2
    ChainB _genesisBlockHash: 0x61b141b2b3cea3660b04ddf5073001238e72d0650cad917428643ac5c9f7a8a1
    _storeAddr: 0xd93c9Ffddf60bE7ccef688dd913211894dBbcd25
    ==> transaction hash: 0x2c9c598d2ec54a43e718e3209c087ac9a98a40a6ff6378df47f46313f000bbcb

    #####################SETUO FINISH

    connect with geth

    connectToClient http://127.0.0.1:8545

    Add an account

    addAccount me /home/ubuntu/data0/keystore/UTC--2019-07-26T05-47-16.454289425Z--4a971347a403961837978090998a97e4bd4c63e4

    add clique contract

    addContractInstance clique /home/ubuntu/Go/src/github.com/clearmatics/ion/contracts/validation/Clique.sol

    submit block

    transactionMessage clique SubmitBlock me 0xC9A36533ef62b9F1a9daAA2e1A0eB5E028140Fe2 0 7581563
    ChainB id: 0x2eb66993ca9529fde635eef4fcc251573a604f0fc84f25db5c7e139a3d192bde
    _rlpUnSingedBlockHeader: 0xf9021ca061b141b2b3cea3660b04ddf5073001238e72d0650cad917428643ac5c9f7a8a1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e612e3ec95d235d35f4265c939f2a3fc42de4e96745c261cd1455ad03c94e004a0906c79301ba3a38c534ac66fdade97388171aa8c85a688b005d78ae6f39dbee2a08cd11238516edba8a0ea40bd10bce64742113a4a715d3b6d1d4119617ca5f94fb90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000800000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000080008000000000000282020187697e0f3bf13b658257bd845d440a6aa0d883010814846765746888676f312e31302e34856c696e757800000000000000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000
    _rlpSignedBlockHeader: 0 0xf9025ea061b141b2b3cea3660b04ddf5073001238e72d0650cad917428643ac5c9f7a8a1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e612e3ec95d235d35f4265c939f2a3fc42de4e96745c261cd1455ad03c94e004a0906c79301ba3a38c534ac66fdade97388171aa8c85a688b005d78ae6f39dbee2a08cd11238516edba8a0ea40bd10bce64742113a4a715d3b6d1d4119617ca5f94fb90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000800000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000080008000000000000282020187697e0f3bf13b658257bd845d440a6ab861d883010814846765746888676f312e31302e34856c696e757800000000000000a042445ae83b5d6d22deb53de690cf256b07b2c7efb5f50875465f744e8ae6f041564c96333123a4fefa308cda05e4aaaafb5066401c65ba6dbc247a7fdb179b00a000000000000000000000000000000000000

    _storageAddr: 0xd93c9Ffddf60bE7ccef688dd913211894dBbcd25
    ==> transaction hash: 0x4e9a3705637d3b22175c0f476348c6df354ea4eb29b48c0f70fe383df6884fee
    @Shirikatsu If you have time, please help check my steps. Thank you very much!
    kambit
    @kambit
    I check the error is from require( checkSignature(_chainId, signedHeader[12].toBytes(), _rlpUnsignedBlockHeader, parentBlockHash), "Signer is not validator" ); in SubmitBlock method. In the checkSignature method, extraDataSig is 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000. I donot know why extraDataSig is abnormal.
    Shirikatsu
    @Shirikatsu
    @kambit Hi kambit. Thanks for pasting this.

    So your steps are slightly jumbled here. Registering a chain requires you to provide a genesis block. What this does is then gives you a base from which you will start submitting consequent blocks by referencing the previous one. This is how the submission of blocks works to ensure that you are submitting something correct (by checking against the previous known block for validator sets and the valid signature(s) against the block being submitted).

    In this case you've registered the chain by using block 513 as the genesis but also attempting to submit the same block 513. If you submit block 513 as your genesis, you will need to submit block 514 onwards. Thus in your case, if you want to use block 513 (which contains your transaction with the transaction you want to prove and use for interoperation) you must register block 512 as your genesis with RegisterChain, then submit block 513 with SubmitBlock.

    kambit
    @kambit
    @Shirikatsu Thank you for your explanation! I will try again. Thank you very much!!!
    Coenie Beyers
    @coeniebeyers
    Hi, are you using the tendermint implementation from https://docs.tendermint.com/master/introduction/what-is-tendermint.html ?
    Shirikatsu
    @Shirikatsu
    @coeniebeyers Hi Coenie, we'll be using a slightly different version of Tendermint implemented in the Autonity client.
    The block validation mechanisms remain the same, but some of the validator rotating and economic mechanisms have not yet been completed.
    Coenie Beyers
    @coeniebeyers
    hi @Shirikatsu! Thanks :)
    Do you have some documentation specific to your implementation that you could share with me?
    Shirikatsu
    @Shirikatsu
    Hey @coeniebeyers
    So implementation docs don't yet exist as we're still in the midst of completing and hardening the implementation. We are trying to follow the Tendermint specification written by the Tendermint guys though. By the time we finish the implementation we should have documents out detailing it and outlining any deltas between our implementation vs Cosmos Tendermint.
    Although the source code at the moment is probably your best source of documentation https://github.com/clearmatics/autonity/tree/master/consensus/tendermint :D
    Out of curiosity, what interests you? :D
    Coenie Beyers
    @coeniebeyers
    okay awesome, thanks!
    I'm trying to do a deeper dive into the differences between IBFT2 and Tendermint used by you guys, but needed to first make sure which implementation you are using :)
    Coenie Beyers
    @coeniebeyers
    @Shirikatsu have you done tests with more than ~20 validators in a single network?