Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 24 17:49
    pscott synchronize #1879
  • Aug 23 22:35
    ajsutton commented #1879
  • Aug 23 22:11
    NicolasMassart commented #1879
  • Aug 23 21:04
    mbaxter synchronize #1881
  • Aug 23 20:20
    ajsutton commented #1879
  • Aug 23 20:07
    mbaxter synchronize #1881
  • Aug 23 20:07
    mbaxter edited #1881
  • Aug 23 20:02
    mbaxter ready_for_review #1881
  • Aug 23 20:00
    mbaxter synchronize #1881
  • Aug 23 17:44
    mbaxter opened #1881
  • Aug 23 17:38
    NicolasMassart commented #1879
  • Aug 23 17:37
    NicolasMassart review_requested #1879
  • Aug 23 17:37
    NicolasMassart review_requested #1879
  • Aug 23 17:15
    NicolasMassart edited #1879
  • Aug 23 17:15
    NicolasMassart edited #1879
  • Aug 23 17:14
    NicolasMassart assigned #1879
  • Aug 23 17:10

    mbaxter on master

    [Minor] Fix gradle formatting (… (compare)

  • Aug 23 17:10
    mbaxter closed #1876
  • Aug 23 16:43
    mbaxter synchronize #1876
  • Aug 23 16:43

    mbaxter on master

    [PIE-1805] Simplify json rpc sp… (compare)

Joshua Fernandes
@joshuafernandes
@NicoBernard21_twitter if both nodes are in the same VPC, regardless of subnet you can use the private ips - the default route table will take care of things. When you bring up node # 2 specify the enode to be enode://public_key_of_node_1@ip_of_node_1
You can use pubic ips to achieve the same thing; generally speaking you use them when joining other networks where peers connect to you (this cant happen if your nodes are on private ips). So for example, if you add a node to mainnet you would use a public ip; but in the case where all nodes are within the same vpc, private ips are fine
Joshua Fernandes
@joshuafernandes
@alenhorvat we've tested networks on Amazon linux which are cousins (for lack of a better word) of RHEL/Centos
Fernando Llaca
@fllaca
@alenhorvat I have a IBFT private network with pantheon 1.1.4 running on CentOS from months ago, so far so god

I have question about security that is more Ethereum broadly related, but it touches Pantheon by extension:

The frame encryption/MAC scheme is considered 'broken' because aes-secret and mac-secret are reused for both reading and writing. The two sides of a RLPx connection generate two CTR streams from the same key, nonce and IV. If an attacker knows one plaintext, they can decrypt unknown plaintexts of the reused keystream.

Does this mean that we cannot solely rely on devp2p for private networks? Do we need to add additional transport security layers like VPNs?

Alen Horvat
@alenhorvat
Thank you!
rtroncosogar
@rtroncosogar
Hi everyone. I'm Rodolfo, from Chile. Hope to learn a lot and also provide any help that anyone could need :)
faraggi
@faraggi
@rtroncosogar Hi Rodolfo! Bienvenido! ;) Nice to have you here.
Nicolas MASSART
@NicolasMassart
Welcome @rtroncosogar !
Antonio Sotomayor Martínez
@antonio.sotomayor1_gitlab

Hi, friends! A doubt about architecture: In the use cases published in Pantheon blog, as the Notary Public Use Case:

Notary Public Use Case

(and these type of architectures), I imagine it is needed to use 3 Smart Contracts to resolve this case (one for each Privacy Group). It is correct?

Antonio Sotomayor Martínez
@antonio.sotomayor1_gitlab
We are trying to migrate the Quorum Secret Ballot sample to Pantheon and it seems like it is not possible (due the way Pantheon creates the Privacy Groups, more similar to channels in Hyperledger)
Antony Denyer
@antonydenyer
@antonio.sotomayor1_gitlab because of the way privacy is implemented you can not do a secret ballot in the same way you can with Quorum. You're correct you need 3 privacy groups and you need to trust the 3rd party to do the correct thing! That being said this is the same situation with Quorum. Let me know if that makes sense.
Antonio Sotomayor Martínez
@antonio.sotomayor1_gitlab
@antonydenyer Thanks, Antony! Makes sense :)
Antony Denyer
@antonydenyer
To expand a bit more, the interesting thing is that in quorum each node can have a different state for the same contract. Whilst it's useful for this use case it comes with some drawbacks. Whereas with private transactions in pantheon every node has the same public state and every node that is party to the information has the same private state.
This will allow us to do interesting things more easily in the future - private state consensus, add/remove people from groups, privacy on mainnet.
Ankit Chowdhury
@ab-chowdhury

Hello Everyone, A doubt while using --nat-method

I am running following command from inside docker. Taking in mind that I have to access IP and ports outside docker also

pantheon --data-path=/home/node/datadir --genesis-file=genesis.json --bootnodes --miner-enabled --miner-coinbase 0xa96760ff18f1d691b786fe06d829aea7dfad99e1 --rpc-http-enabled --rpc-ws-enabled --rpc-http-cors-origins=all --host-whitelist=* --rpc-ws-apis=admin,eth,net,web3,ibft,debug,perm,miner,eea,txpool --rpc-http-apis=admin,eth,net,web3,ibft,debug,perm,miner,eea,txpool --rpc-http-host=0.0.0.0 --rpc-http-port= 10300 --rpc-ws-host=0.0.0.0 --rpc-ws-port=10301 --p2p-host=192.168.1.100 --p2p-port=10302 --nat-method=upnp --min-gas-price=0

I have tried this command also : (It also give similar error)

pantheon --data-path=/home/node/datadir --genesis-file=genesis.json --bootnodes --miner-enabled --miner-coinbase 0xa96760ff18f1d691b786fe06d829aea7dfad99e1 --rpc-http-enabled --rpc-ws-enabled --rpc-http-cors-origins=all --host-whitelist=* --rpc-ws-apis=admin,eth,net,web3,ibft,debug,perm,miner,eea,txpool --rpc-http-apis=admin,eth,net,web3,ibft,debug,perm,miner,eea,txpool --rpc-http-host=0.0.0.0 --rpc-http-port= 10300 --rpc-ws-host=0.0.0.0 --rpc-ws-port=10301 --p2p-host=0.0.0.0 --p2p-port=10302 --nat-method=upnp --min-gas-price=0

I am getting the following error for peer discovery.

2019-08-20 12:29:15.764+00:00 | main | ERROR | DefaultP2PNetwork | Error configuring NAT environment
java.util.concurrent.TimeoutException: null
at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1886) ~[?:?]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2021) ~[?:?]
at tech.pegasys.pantheon.ethereum.p2p.network.DefaultP2PNetwork.configureNatEnvironment(DefaultP2PNetwork.java:371) [pantheon-p2p-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.ethereum.p2p.network.DefaultP2PNetwork.start(DefaultP2PNetwork.java:191) [pantheon-p2p-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.ethereum.p2p.network.NetworkRunner.start(NetworkRunner.java:78) [pantheon-p2p-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.Runner.start(Runner.java:82) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.PantheonCommand.synchronize(PantheonCommand.java:1205) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.PantheonCommand.startSynchronization(PantheonCommand.java:753) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.PantheonCommand.run(PantheonCommand.java:667) [pantheon-1.2.0.jar:1.2.0]
at picocli.CommandLine.execute(CommandLine.java:1160) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine.access$800(CommandLine.java:141) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine$RunLast.handle(CommandLine.java:1367) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine$RunLast.handle(CommandLine.java:1335) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1243) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:1526) [picocli-3.9.6.jar:3.9.6]
at tech.pegasys.pantheon.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:59) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:29) [pantheon-1.2.0.jar:1.2.0]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1243) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:1526) [picocli-3.9.6.jar:3.9.6]
at tech.pegasys.pantheon.cli.PantheonCommand.parse(PantheonCommand.java:748) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.PantheonCommand.parse(PantheonCommand.java:659) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.Pantheon.main(Pantheon.java:45) [pantheon-1.2.0.jar:1.2.0]
2019-08-20 12:29:15.876+00:00 | nioEventLoopGroup-2-1 | INFO | NettyConnectionInitializer | P2P network started and listening on /0.0.0.0:10302

2019-08-20 12:30:15.878+00:00 | main | WARN | PeerDiscoveryAgent | Caught exception while trying to query NAT external IP address (ignoring): {}
java.util.concurrent.TimeoutException: null
at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1886) ~[?:?]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2021) ~[?:?]
at tech.pegasys.pantheon.ethereum.p2p.discovery.PeerDiscoveryAgent.start(PeerDiscoveryAgent.java:132) [pantheon-p2p-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.ethereum.p2p.network.DefaultP2PNetwork.start(DefaultP2PNetwork.java:195) [pantheon-p2p-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.ethereum.p2p.network.NetworkRunner.start(NetworkRunner.java:78) [pantheon-p2p-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.Runner.start(Runner.java:82) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.PantheonCommand.synchronize(PantheonCommand.java:1205) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.PantheonCommand.startSynchronization(PantheonCommand.java:753) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.PantheonCommand.run(PantheonCommand.java:667) [pantheon-1.2.0.jar:1.2.0]
at picocli.CommandLine.execute(CommandLine.java:1160) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine.access$800(CommandLine.java:141) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine$RunLast.handle(CommandLine.java:1367) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine$RunLast.handle(CommandLine.java:1335) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1243) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:1526) [picocli-3.9.6.jar:3.9.6]
at tech.pegasys.pantheon.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:59) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:29) [pantheon-1.2.0.jar:1.2.0]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1243) [picocli-3.9.6.jar:3.9.6]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:1526) [picocli-3.9.6.jar:3.9.6]
at tech.pegasys.pantheon.cli.PantheonCommand.parse(PantheonCommand.java:748) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.cli.PantheonCommand.parse(PantheonCommand.java:659) [pantheon-1.2.0.jar:1.2.0]
at tech.pegasys.pantheon.Pantheon.main(Pantheon.java:45) [pantheon-1.2.0.jar:1.2.0]
2019-08-20 12:30:15.931+00:00 | vert.x-eventloop-thread-6 | INFO | VertxPeerDiscoveryAgent | Started peer discovery agent successfully, on effective host=0.0.0.0 and port=10302
2019-08-20 12:30:15.965+00:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://aa2db29e8bce28b994cf907654a7e5e05f2bd6e58efae457bb04daafc43c3f06bcd0000bfd43d87e05cb41e8287798491b455d643d4205a2ffcd65313c3f14f4@192.168.1.100:10302

Can anyone please tell me how to use --nat-method?

I have to use IP as 192.168.1.100 but "Started peer discovery agent successfully, on effective host=0.0.0.0 and port=10302" It starts peer discovery in 0.0.0.0

Ankit Chowdhury
@ab-chowdhury
Quorum is having a similar command where we can pass external ip manually.
--nat value NAT port mapping mechanism (any|none|upnp|pmp|extip:<IP>) (default: "any")
eg. --nat extip:$CURRENT_NODE_IP
How can we do it in case of pantheon?
Danno Ferrin
@shemnon
—nat-method doesn’t work inside a docker image yet. Right now what is supported is running on the physical box with a consumer upnp router, or no nat method.
Ankit Chowdhury
@ab-chowdhury
@shemnon So what is the alternate way to join a network from docker?

Quorum is having a similar command where we can pass external ip manually.
--nat value NAT port mapping mechanism (any|none|upnp|pmp|extip:<IP>) (default: "any")
eg. --nat extip:$CURRENT_NODE_IP
How can we do it in case of pantheon?

It works inside docker in case of quorum.

Danno Ferrin
@shemnon
The client will still connect to bootnodes and navigate the neighbors list.
Ankit Chowdhury
@ab-chowdhury
It is working normally without docker but while using docker, it fails to join .
Erick Pacheco Pedraza
@eum602
Hello everyone, I would like to know if someone knows how to make a FORK on Pantheon, I am using IBFT2.0 consensus algorithm. I appreciate all answers.
faraggi
@faraggi
@eum602 Could you elaborate a bit more on your question?
Erick Pacheco Pedraza
@eum602
I would like to know how in an IBFT2.0 network, a regular node(other than validator node) can make a Fork from the original network. For that I imagine that somehow that regular should become the unique validator in the new forked chain. Thanks!
Adrian Sutton
@ajsutton
@ab-chowdhury You can use —p2p-host to set the external IP manually. You should be able to connect to peers on public chains without setting it though - you just may not get incoming connections.
@eum602 That’s not possible at the moment. The validators have absolute control of an IBFT2 network so you’d need to add in a hard fork that arbitrarily changes the set of validators at a particular block. Pantheon doesn’t currently provide a way to do that.
Adrian Sutton
@ajsutton
@ab-chowdhury The other thing worth noting is that in the commands you’ve posted, there are no bootnodes specified which will prevent discovery from working since there’s no way to find peers. You may still get some peers connecting in to you at which point it should find more, but it won’t find any on its own.
David Ammouial
@davux
hi, I have trouble setting up ethstats (alethio), is this the right place to ask?
http://ethstats.lacchain.io keeps spinning and doesn't show anything, I'm not sure why
faraggi
@faraggi
@davux Alethio has a discord server: https://discord.gg/d2t8NuU
pscott
@pscott
Hi,
Wondering if I can take PAN-1894 (https://pegasys1.atlassian.net/browse/PAN-1894) ?
David Ammouial
@davux
@faraggi thanks!
pscott
@pscott
Pinging @MadelineMurray as she is the reporter :D
MadelineMurray
@MadelineMurray
@pscott - yes :-) What's your jira username?
Antonio Sotomayor Martínez
@antonio.sotomayor1_gitlab
@antonydenyer Thanks for your answer, Antony! Really, that "different state for the same contract” Quorum feature is something that worries me a lot! :)
Adam Schmideg
@adamschmideg
I’m thinking about refactoring the GraphQL tests into a different repo so it is used across all clients. That means the json test files and the config needed to set up the chain for testing. My ideal scenario is to run tests in a CI job like this
any_client —graphql in one terminal
graphql-cli first_test.graphql —output first_result.json && jsondiff first_expected.json first_result.json in another terminal
pscott
@pscott
@MadelineMurray I just commented the issue because I had a question :)
My username is Scott Piriou :)
Danno Ferrin
@shemnon
@adamschmideg I think it will take a bit more than just getting clients to support a --graphqlflag like is being done with retesteth. For the test a standard chain is needed. So the importable rlp file and then the gensis/chainspec file for each client would work. But since it is a JSON-RPC interface differential testing is totally doable.
MadelineMurray
@MadelineMurray
@pscott - assigned to you and answered the question.
Adam Schmideg
@adamschmideg
Thanks @shemnon
Erick Pacheco Pedraza
@eum602
Can someone comment how BLOCK HASH calculation is made on ibft2.0 network, I mean what is the structure(specially in the extradata)? Thanks.
Erick Pacheco Pedraza
@eum602
Please, I would like to know how proposer seal and commited seals are calculated, I tried to verify those with EIP650 guidance but it seems IBFT2.0 differs from that. All answers are appreciated.
pscott
@pscott
Hi, trying to launch Pantheon with invalid ids for the banned-node-ids option, it first prints out the error message "Invalid ids supplied[...]", and then writes the whole usage. From what I've understood from the CLI Style Guide, the whole usage should not be printed.
I have not seen any issue on this topic : should I create one ?
In case it wasn't clear : I believe the banned-node-ids option is not the problem here, I believe any error regarding the options will actually print out the whole usage
tmohay
@rain-on
Hi @eum602 IBFT2 differs from the EIP-650 in a few ways - so the specified block hashing won't work. The specific extraData RLP encoding can be found in tech.pegasys.pantheon.consensus.ibft.IbftExtraData.decodeRaw . but as a general overview it appears thuswise:
  • byte[32] - vanity data
  • Adress[*] - validators
  • Optional<Vote> - proposal to add/remove a validator
  • int - Round Number in which block was validated
  • Signature[*] - Sealing signatures.
When calculating the block hash for on-chain blocks the commit-seals and RoundNumber are excluded from the dataset being hashed.