0

I read about how the raft consensus works in Quorum to reach consensus and broadcast blocks (https://github.com/jpmorganchase/quorum/blob/master/docs/raft.md). I don't know if the following is correct or not:

The leader in the raft network does not "validate" each transaction before inserting it in the block to be added. It only ensures that all nodes receive the same copy of a block without validating it?

I mean by "validate" the fact of verifying each transaction signature to be sure that the transaction is sent by a legitimate user, as well as the transaction has not been modified.

Can anyone respond to me?

1 Answer 1

2

how are you? Quorum does not change how this validation is performed in regular Ethereum and consensus in this case is not relevant for the validation part.

To perform a transaction on an Ethereum chain, one must have a valid Ethereum account. An account involves a set of public and private keys which could be managed by the node itself or externally (through a wallet like MetaMask) and connectivity to the said node.

When generating a txn, if you are using a node managed account, you must request that node unlocks this account for you and then generate a txn with web3.eth.sendTransaction or the smart contract wrapped equivalent of. In the externally managed case, you would use something like sendRawTransaction in which case you must provide a signed payload to the node.

In either case, the txn will eventually end up in the node that accepted this txn and it will run additional state checks through the EVM. If they pass, txn is placed into txnpool and will be gossiped to other nodes in the blockchain until it reaches a node that is able to generate a block. Once it does, the block with this txn will be mined and distributed to all other nodes.

Quorum consensus mechanisms change who and how these blocks are generated (that is which nodes are allowed to generate block, how often a block is generated, etc) and do not add any additional checks on the initiators of txns as long as they are proper Ethereum accounts on the given Quorum chain.

4
  • Thanks for the response, It was very helpful. Just I want to know what do you mean by " the node that accepted this txn" ? Do you mean the local node that generated the txn? so the txn is only verified locally?
    – A.Gh
    Commented Jan 10, 2019 at 9:35
  • All txns get accepted by a node you are able to connect to that is itself a part of blockchain. This node will verify the txn for validity
    – fixanoid
    Commented Jan 11, 2019 at 2:33
  • If the txn is valid it will be passed on until it reaches a node that will include it in the block. If its invalid then the txn will be rejected by accepting node (the node you will hit with web3 or via json-rpc calls).
    – fixanoid
    Commented Jan 11, 2019 at 16:16
  • Same for the validity -- when you execute the RPC call to the node to accept the txn, the node will run validity checks before accepting it.
    – fixanoid
    Commented Jan 11, 2019 at 16:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.