이더리움과 하이퍼레저의 차이점은
하이퍼레저의 경우
보증피어(endoring peer)에서만 코드를 실행하고, 결과를 공유한다.
이에 따라
거래처리를 병렬적으로 한다. (이더리움은 순차적)
이러한 프로그래밍 형태를 non-deterministic이라 부른다. (이더리움은 deterministic)
== 그 외 구성요소 ==
MSP (Membership Service Provide) -
Ordering Service - 병렬적인 처리의 순서 정렬.
그 외 client node와 보증피어로 구성됨
== ==
이더리움이 머클패트리샤트리로 계정기반의 world-state를 관리하듯이
하이퍼렛져는 key-value기반의 world-state를 관리한다.
박승철교수님의 강의 참조: REF
=== ChainCode 관련 ==
chainCode는 여러노드에서 실행을 위해 multiple Sign을 할 수도 있고, 간단하게 single Sign을 할 수도 있다.
Single Sign시에는 하나의 노드에서만 구동이 가능하다.
<install 절차>
1. Install을 위해서는 SignedProposal을 LSCC(Lifecycle System ChainCode)로 보내야 한다. SignedCDS포맷을 따르게 된다.
- $peer chaincode install 커맨드 이용
2. instantiate
- 채널을 바인딩해서 해당채널에 transaction을 submit한다.
- $peer chaincode instantiate 커맨드
한번 instantiate를 하고난 후에는 upgrade 커맨드를 이용한다.
참고: #peer chaincode --help REF
peer chaincode install -n mycc -v 0 -p path/to/my/chaincode/v0
peer chaincode instantiate -n mycc -v 0 -c '{"Args":["a", "b", "c"]}' -C mychannel
peer chaincode install -n mycc -v 1 -p path/to/my/chaincode/v1
peer chaincode upgrade -n mycc -v 1 -c '{"Args":["d", "e", "f"]}' -C mychannel
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","e"]}'
peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'