Typescript/Javascript
GraphQL
Solidity
Hyperledger Besu
Tessera - Configuring a network that supports private transactions requires starting a Tessera node for each Hyperledger Besu node.
To create privacy-enabled network, have used IBFT 2.0
besu --data-path=data --genesis-file=../genesis.json --permissions-accounts-contract-enabled --permissions-accounts-contract-address " 0x0000000000000000000000000000000000008888" --permissions-nodes-contract-enabled --permissions-nodes-contract-address " 0x0000000000000000000000000000000000009999" --permissions-nodes-contract-version=2 --rpc-http-enabled --rpc-http-cors-origins=" *" --rpc-http-api=ADMIN,ETH,NET,PERM,IBFT --host-allowlist=" *"
besu --data-path=data --genesis-file=../genesis.json --bootnodes=< Node-1 Enode URL> --permissions-accounts-contract-enabled --permissions-accounts-contract-address " 0x0000000000000000000000000000000000008888" --permissions-nodes-contract-enabled --permissions-nodes-contract-address " 0x0000000000000000000000000000000000009999" --permissions-nodes-contract-version=2 --rpc-http-enabled --rpc-http-cors-origins=" *" --rpc-http-api=ADMIN,ETH,NET,PERM,IBFT --host-allowlist=" *" --p2p-port=30304 --rpc-http-port=8546
besu --data-path=data --genesis-file=../genesis.json --bootnodes=< Node-1 Enode URL> --permissions-accounts-contract-enabled --permissions-accounts-contract-address " 0x0000000000000000000000000000000000008888" --permissions-nodes-contract-enabled --permissions-nodes-contract-address " 0x0000000000000000000000000000000000009999" --permissions-nodes-contract-version=2 --rpc-http-enabled --rpc-http-cors-origins=" *" --rpc-http-api=ADMIN,ETH,NET,PERM,IBFT --host-allowlist=" *" --p2p-port=30305 --rpc-http-port=8547
besu --data-path=data --genesis-file=../genesis.json --bootnodes=< Node-1 Enode URL> --permissions-accounts-contract-enabled --permissions-accounts-contract-address " 0x0000000000000000000000000000000000008888" --permissions-nodes-contract-enabled --permissions-nodes-contract-address " 0x0000000000000000000000000000000000009999" --permissions-nodes-contract-version=2 --rpc-http-enabled --rpc-http-cors-origins=" *" --rpc-http-api=ADMIN,ETH,NET,PERM,IBFT --host-allowlist=" *" --p2p-port=30306 --rpc-http-port=8548
Permission configuration for Node-1
curl -X POST --data ' {"jsonrpc":"2.0","method":"perm_addNodesToAllowlist","params":[["<EnodeNode1>","<EnodeNode2>","<EnodeNode3>","EnodeNode4"]], "id":1}' http://127.0.0.1:8545
curl -X POST --data ' {"jsonrpc":"2.0","method":"perm_addNodesToAllowlist","params":[["<EnodeNode1>","<EnodeNode2>","<EnodeNode3>","EnodeNode4"]], "id":1}' http://127.0.0.1:8546
curl -X POST --data ' {"jsonrpc":"2.0","method":"perm_addNodesToAllowlist","params":[["<EnodeNode1>","<EnodeNode2>","<EnodeNode3>","EnodeNode4"]], "id":1}' http://127.0.0.1:8547
curl -X POST --data ' {"jsonrpc":"2.0","method":"perm_addNodesToAllowlist","params":[["<EnodeNode1>","<EnodeNode2>","<EnodeNode3>","EnodeNode4"]], "id":1}' http://127.0.0.1:8548
curl -X POST --data ' {"jsonrpc":"2.0","method":"admin_addPeer","params":["<EnodeNode1>"],"id":1}' http://127.0.0.1:8546
curl -X POST --data ' {"jsonrpc":"2.0","method":"admin_addPeer","params":["<EnodeNode1>"],"id":1}' http://127.0.0.1:8547
curl -X POST --data ' {"jsonrpc":"2.0","method":"admin_addPeer","params":["<EnodeNode1>"],"id":1}' http://127.0.0.1:8548
curl -X POST --data ' {"jsonrpc":"2.0","method":"admin_addPeer","params":["<EnodeNode2>"],"id":1}' http://127.0.0.1:8547
curl -X POST --data ' {"jsonrpc":"2.0","method":"admin_addPeer","params":["<EnodeNode2>"],"id":1}' http://127.0.0.1:8548
curl -X POST --data ' {"jsonrpc":"2.0","method":"admin_addPeer","params":["<EnodeNode3>"],"id":1}' http://127.0.0.1:8548
Confirm permissioned network is working
curl -X POST --data ' {"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' localhost:8545