问题
I've been trying to understand the concepts of Consensus and Notaries, there are some questions:
- do all nodes/participants require to do the verification consensus in order to assure the transaction inputs, outputs are valid? Does it somehow resemble verifying the Bitcoin input transactions?
- uniqueness consensus is a must when involving unique successor of a state (aka preventing double spending) and by using uniqueness consensus, notary service is involved?
- (this one confused me) in notary services, containing verifying and non-verifying notaries, does the verifying notary do the same way as the verifying consensus to validate all transactions (going back to the very beginning of each state to check the signatures & correctness), that’s why it is called verifying notary service?
- Do both notary services will store the map locally for checking consumed state of the proposed transactions? If yes, how can I see the details of the map?
Thanks and cheers,
回答1:
No. Only the participants involved in a given transaction, plus the transaction's notary, verify a given transaction. This is core to Corda's privacy-first approach, where transaction information is only distributed on a need-to-know basis.
Yes, each transaction is assigned to a specific notary service (there may be several on the network), and the notary ensures that there are no double-spends.
That's correct. The non-verifying notary simply checks that the transaction's inputs haven't already been spent. The verifying notary also "walks the chain" to ensure that the transaction is valid. You have a choice between using a non-verifying and a verifying notary for each transaction, depending on how much information you wish to disclose.
Both types of notaries store the information about which states have been spent locally. Only the notary itself can see the details of this map, by checking the NODE_NOTARY_COMMIT_LOG in its H2 database.
来源:https://stackoverflow.com/questions/45816778/consensus-and-notaries