แแแแแแแแแแขแแแแแแแถแ แ แพแแแแแแแแขแแแแแแถแแ!
แแ แแแแปแแขแแแแแแแปแ แแพแแแถแแแแแแแแถแแแถแแฝแแแนแแแ แแ แแแแทแแแแถแแแ blockchains แแแแผแแแถแแแถแแแแ () แแทแแแแแธแแแแขแถแ แแแแผแแแถแแขแแปแแแแแแแแแแแฝแแแแแแแฝแแแ () แแแแแแแแแแพแแถแแแถแแฝแแแแแแแแขแแแแ แพแ! แแพแแแแธแขแแปแแแแ Pilots แแทแ PoC (Proof of Concept) แแแแปแแ แผแแ แทแแแแแแแพแแแ แแแแแ... แแฝแแแแขแถแ แ แผแแแแแพแแถแแแธแแแแแแแทแแแธแแแแปแแแทแแแแแ แ แพแแแถแแฟแแ แแทแแ แถแแแถแ แแแแแแแแแถแแแแแแแแถแแพแแถแแแแกแพแแแแทแแแแถแแแแแปแแแแแถแแแแแแแ แแธแแแแแ แแถแแแถแแแแแแแแ แแถแแแแแแแแแแถแแปแแ แแผแ แแแแ แ แผแแแพแแแแแแพแแขแแแธแแแแแถแแแแ แงแแถแ แแแ แแแแแถแแแแแแถแแแแแแแแแถแแแแแถแแขแแแแ แผแแแฝแ แ แพแแ แ แแถแแถ Bitcoin แแแแแปแแถแแแถแแแถแ แแแแแถแแแแแแ แถแแแแแพแแแนแแแแแพ IBM cloud แแทแ universal blockchain Hyperledger Fabric แ แแถแแแแผแ แ แผแแแพแแแแแแแแแแแถแ แแแปแขแแแธแแถแแแถแแแแแถแแ Hyperledger แแแแผแแแถแแแแ แ แแถแแถแแแ blockchain?

แแแแแถแแ Hyperledger - แแถ blockchain แแแ
แแทแแถแแแถแแผแแ แแแแแแแแแแแแแแถแแแแแแบแ
- แแแแปแแแแแแถแแแธแแแ แแทแแแแแผแแแแแแแทแแธแแแแแแแพแแแถแแแแแแแทแแแแถแขแถแแธแแแแแแ
- แ แแแปแ แแแแแถแแแแแแแถแแแขแแแแแแแแแแถแแฝแแแแแแแแแ;
- แงแแแแแแแแแแถแแแแถแแ แปแแแแแแ แแถแแแแแแแแแแถแแ แแทแแแถแแขแแปแแแแถแแงแแแแแ/แแแปแแแ;
- แแผแแแแแถแแแทแแแแแแแแแแแถแแปแแแทแแแแแแแแแแแทแแแแแทแแถแ แแทแแแแแแแถแแ

แแแแแแแแผแแแถแแแแขแแแธแแแ Hyperledger Fabric แแบแขแถแ
แขแถแแแถแแแ
แ แพแแแทแแถแแฑแแแแแแธ Hyperledger Fabric แแบแแถแแแแทแแถแแแแแแแพแแ
แแ แแแแขแแปแแแแถแแฑแแแขแแแแแแแแพแ blockchains แฏแแแ แแทแแขแแปแแแแแแทแ
แแ
แแแแแถแแแแถแแแแแแแแถแแแแแแแแ
แแแแปแแแถแแถแแแแแแแแแแแทแแธ JS แแทแ Go แ แแผแแแแแกแแแแพแแแแแขแทแแขแแแธแแแแถแแแแแแแแแแ Hyperledger Fabric แ แพแแแแแผแแแแแถแแแแถแแแแแบแแถแแแแแแแแแแแแแแแแถแแแแแแแแแทแแแแแแแแถแแแแแแแถแแปแ แแทแแแแแแแแถแแทแแแแแแแแแปแแแแแแ แแถแแแถแแแแถแแแแบแแถแแทแแแแแแแแผแ
แแ
แแแแปแ blockchain แแถแแแขแแแแแแผแแแถแแแแแแถแแปแแแแแปแแแแแปแแแแแแแแผแแแถแแแถแแแแ
แแพ blockchain แแปแแแแแถแแแขแแแแ
แผแแแฝแแแถแแแแแแถแแแแแแแแแ แพแแแแแแถแแแแธแแถแแแแแแแแถแแทแแแแแแแแทแแขแถแ
แแแแแแแผแแฌแแปแแแแแแแแแแแแแถแแแแถแแแแ
แแแแถแแแแแแแแแแแแแถแแ Hyperledger
แแแแถแแแแถแแแแแ แถแแแธแแแแถแแแแแแแแ Hyperledger Fabricแ

แขแแแแแถแ - แขแแแแแถแแแถแแแทแแแแแฝแแแถแแแถแ แง. blockchain แแถแแแแแแถแแแแแถแแแถแแแแแแธแขแแแแแถแแ แขแแแแแถแแแแแแแแแแถแขแถแ
แแถแแแแแแแฝแแแแแถแแแแแผแ
แแแแถแ
แแถแแแ - แแ แแถแแแแแแแแแกแผแแธแแแแแแแแแแฝแแแแแแฝแแแทแแแแแฝแแแถแแแถแแแถแแแแปแ แง. blockchain แแแแผแแแถแแแแแแถแแแ แแแแแถแแ Hyperledger แขแถแ แแแแพแแแถแ blockchains แแถแ แแแพแแแแแปแแแแแแแแถแแแแแถแแถแแฝแแแนแแแแแแแทแแแแถแขแถแแธแแแแแแแแแแแแแแแถแ
แขแแแแแแแแแแแแถแแแถแแทแแแถแ (MSP) แแบแแถ CA (แขแถแแแแถแแแแทแแแแถแแแแแแ) แแแแแถแแแ แแแขแแแแแแแแถแ แแทแแแแแแแแฝแแถแแธแ แแพแแแแธแแแแแพแแแแแถแแ แขแแแแแแแผแแแแแพแขแแแแแแแแแแถแแฝแ MSP แ
แแแแถแแแแทแแแแแแแแท - แแแแแแแแแถแแแแแแแทแแแแแทแแถแ แแแแแถแแปแ blockchain แแแแแทแแแแแทแแทแ แแ แแแแแถแแแแถแแแ แแทแแแแแพแขแแแแแแแแแแถแแฝแแแแแแแทแแธแ แแทแแแแแแแแแทแแถแแขแแแแแแแแถแ (แแทแแแแถแแแแแแแแธแแธแแ) แแแแแแแผแแแถแแ แแแแแ MSP แ แแทแแแผแ แแแแแถแ Bitcoin แฌ Etherium แแแแแแแถแแแแถแแแขแแแแถแแแทแแแแทแแแแพแแแแถแแ แแแแปแ Hyperledger Fabric nodes แแพแแแฝแแถแแธแแแแแแแแแแถแ
- แแแแ แแ แแถแโแแถแแแแโแแทแแแโแแแแแท (EP) แแทแแขแแปแแแแแแทแ แแ แแแแแถแแแแถแแแแ
- แแถแแแแแแแแแถแ แทแแแ (CP) - แแแแแถแแปแแแแแทแแแแแแแแ แแแแปแ blockchain แแทแแแแแพแแ แแ แปแแแแแแแแถแ "แแแแถแแแถแแแทแแแแแ" แ
- แแปแแแแถ Peer (AP) - แแแแแทแแแพแขแแแแแถแแแฝแแ แแแฝแแ แผแแแฝแแแแแปแ blockchain แแแ แแทแแแแแฝแแแปแแแแถแแแแผแแแถแแแแแพแแแแแถแแแแถแแแแแถแแแแแแแแแถแแแฝแแแแ แแแแถแแแแแธแแฝแแแแแแผแแแแแถแแแแแผแแ แแถแแแปแแแแถแแฝแ แฌแ แแแพแแ แแแแแแแพ AP แแทแแแแแแแแแทแแแแปแแแแแถแแแแแถแแฝแแขแถแ แแแฝแแแถแแแแแแแถแแขแแแธแแทแแแแแแแแทแแถแแแขแแแแ แแแแปแแขแแแแแถแแแแแแแแแแ แแแแพแแพแแแแธแแแแพแแแแถแแแแแแแแแแแถแแแแถแ APs .
- แขแแแแแนแแแถแ Peer โ แแแแแทแแแพแแแแถแแแแแฝแแแถแแแทแแแแแแแแแทแ แแแพแแแถแแ แแแแแถแแแแขแแแแแนแแแถแแแแแทแแแแแแแแทแแแปแแแแแแแแแแนแแแแฝแแแถแแแแแปแแแธแแแแถแแแแแแแแแถแแทแ แ แพแแแแแแแฑแแแแฝแแแแแ แแทแแแแแแแแทแแแแแ แแแแ แขแแแแแนแแแถแแขแถแ แแแแผแแแถแแแแแแถแแแแแแแทแแทแแแแ แฌแแแแผแแแถแแแแแพแแแพแแแแแแถแแแแแแแแแแทแแแแแแแแแทแแ แแแแปแแแแแถแแแแ แแทแแธแแถแแแทแแถแแแพแแแแแแแผแแแถแแแแแพแแพแแแแธแแแแพแแแแถแแแแแแแแแแแถแแขแแแธแขแแแแแนแแแถแแแแแแแ
แแแแแแแแแแแ - แขแแแแแถแแแแแแถแแแแแแแแทแแแแแผแแแถแแแแแแถแแปแแแ แแพ blockchain แ แแทแแแแแถแแแแแแ แแแ แแแแแบแแถแแทแแแแแแแแแแแแแแแแนแแแแแปแแแแแแแ JSON แ แแถแแบแแถแแทแแแแแแแแแแแแแแแแผแแแถแแแแแแแแถแแ แแแแปแ Blockchain แ แแฝแแแแแถแแแแแแแแแทแแฝแ แแแแแแแผแแแถแแแแแแถแแปแแแ แแแแปแ blockchain แแทแแแแแถแแแถแแแ แแ แปแแแแแแ แแแแแแแผแแแถแแแแแแถแแปแแแ แแแแปแแแผแแแแแถแแแทแแแแแแ "แแแแแแทแแแแแ" แ แแ แแถแแแแแแแแแแทแแแแแแแแแแผแแแถแแแแแแแแถแแขแแแพแ แทแแแ แขแถแแแแแแแพแแถแแแทแ แแ แขแถแแธแแแแแแ แแทแแแถแแแถแแแแแแแแผแแแถแแแ แแถแแแแแถแแแแแฝแแแแแแบแแถแแแแแแแแแแแแแแทแแแแผแแแแแถแแแแ แถแแ แแทแแแถแแแแแแแ
แแแแแ แแ - แแฝแแแถแ Blockchain แแทแ Word state database แแแแแแแแถแแปแแแแแถแแแถแแแ แแ แปแแแแแแแแแแแแแแแแแแแแ แแแแแแทแแแแแแแแแพ LevelDB แฌ CouchDB แ
แแทแ แแ แแแแแถแแแแถแ - แแแแแแแพแแทแ แแ แแแแแถแแแแถแแแ แแแแแแทแแแแถแขแถแแธแแแแแแแแแแแแแแแแแแแผแแแถแแขแแปแแแแแ แแ แแแแปแ Hyperledger Fabric แแทแ แแ แแแแแถแแแแถแแแแแแแผแแแถแแแแ แ แแถ chaincode แ แแถแแแแแพแแแแถแแแแผแแแแแแแแแแถแแ แแแแแแแแแแแแแแท แแทแแแแแแทแแแแแทแแถแแแพแแฝแแแถแแแแผแแแถแแแแแแถแแแ แแ แแแแปแแแแแแแแแแแ แแ แแแแแ แแทแ แแ แแแแแถแแแแถแแแแแบแแถแแแผแแปแแแแแแแทแแธแแแแแแแผแแแถแแขแแปแแแแแแ แแแแปแแแถแแถแแแแแแแแแแแทแแธ JS แฌ Go แ
แแแแแแแแถแแขแแปแแแ โ แแแแแถแแแแแแแผแแแแแแแแแแถแแแแธแแฝแแ แขแแแแขแถแ แแแแแแแแแแถแแแแแแแธแแธแ แแแฝแแแถแแแแแแถแแแแแแแถแแแแแแแทแแแแแทแแถแแแแแแฝแแแแแผแแแถแแแแแนแแแปแ แแทแแแธแขแแแแแถแ แแแแแทแแแพแแแแแถแแแแแทแแแแแผแแแถแแแแแแ แแแแแแแถแแแพแแแบแ "แแแแแทแแแแแทแแถแแแแแผแแแแแแแแถแแแแแแแแถแแทแแแแแแแถแแแแแถแแฝแแแ แแแแปแแแแปแแแแทแแ" แงแแถแ แแแแแแแแแแแแแถแแ
- แแแแแทแแแแแทแแถแแแแแผแแแแแแแผแแแถแแขแแปแแแแแแแขแแแแแแแแแแแแแแถแแฝแแแแขแแแแแถแแ
- แแแแผแแแแแแแแถแแแแแแแแถแแทแแแถแแฝแ แฌแขแแทแแทแแแแแแแขแแแแแถแแ
- แแแแผแแแแแแแแถแแแแแแขแแแแแถแแแทแแแแแแแแแทแแถแแฝแแ
แแแแถแแแแแแแแแถแแทแ - แแแ แแแแแแแทแแแแแทแแถแแ แผแแแ แแแแปแแแแแปแ แ แพแแแแแพแแถแแ แแทแแแแแแแแแทแแ แแแแปแแแถแแแแ แแถแแถแแถแแแแแแผแแแถแแแ แแถแแแแทแแแแแแแแแทแแถแแแขแแแแ แแพแแแแแถแแ แแแแพแแแแแถแแแแแแแแแแแงแแแแถแ แแแแ แแแแแถแแแแถแแขแแทแแแแแแ แแทแแแถแแแถแแแแแ .
CallFlow

- แแแแแแทแแธแแแแถแแแแแแแแถแแฝแ Hyperledger Fabric แแแแแแแพ Go, Node.js แฌ Java SDK;
- แขแแทแแทแแแแแแแพแแแแแแทแแแแแทแแถแ tx แ แพแแแแแพแแถแแ แแทแแแแแแแแทแแแแแถแแแแแ
- Peer แแแแแแแแแถแแแ แแแแแแแถแแแแแขแแทแแทแแ แแแแ แแแแแแแทแแแแแทแแถแ แแทแแแแแพแ แแแแแแแถแแแแแแแแแแแกแแแแ แขแแทแแทแแแแทแแ Chaincode แแแแผแโแแถแโแแแแแทแแแแแทโแแโแแพโแขแแแโแแถแแแแโแแแปแแแแแ แ แพแโแแแแแแโแแโแแถแโแแแแแทแแแแแทโแแแแโแแถโแแแแผแโแแถแโแแแแพโแแ โแแทแแแโแแแแแทโแแถแแโแขแแแ แแแแฝแแแแแแแแถแแแแแถแแแถแแแแแแแแผแแแถแแแแ แ แแถ PBFT (Practical Byzantine Fault Tolerant) consensus แ แแปแแแแแถแแธ แแถแแแทแแแแแแถแแถแแแแแผแแแถแแแแแพ แแทแแแถแแแแแแถแแแแแแผแแแถแแแแแนแแแถแแทแแแแแแแแธแขแแแแ แผแแแฝแแแถแแแขแแแแแแแ แแแปแแแแแแถแแแแแธแแแแปแแแถแแแแถแแแแฝแแแแปแแแแแแ
- แแแแแถแแแแธแขแแทแแทแแแแถแแแแฝแแ แแแฝแแแแแถแแแแแพแแแแแแแแแแผแแแนแแแแแแถแแแแแแแแแแ แแถแแแแแแพแแแแแทแแแแแทแแถแแแ แแถแแแแแแถแแแแแแแแแถแแทแแ
- แแแแถแแแแแแแแแถแแทแแแแแแพแแแแแปแ แ แพแแแแแพแแถแแ แแทแแแแแฝแแแถแแแถแแแถแแแขแแแ แแแแถแแแแแแแแแถแแทแแแถแแถแแผแแแถแแแแแแแแถแแถแแแแถแแแแแแแแปแ แแแแแปแแแแแถแแแขแแแธแแแแแแ แ แแถ แแแแแ แแแแแแแถแแ ();
- แแทแแแแแแแแแทแแแฝแแแถแแแแแปแ แแทแแทแแแแแพแแแแแแถแแแแแแแแแแแแแแแแแ แแแแแแแแแปแแแ blockchain แแทแแแแแถแแแแแแผแแแแแถแแแถแแแ แแแแปแ "แแแแแแทแแแแแ" DB แ
แแถแแแแแแ แแแแแแแแถแแฑแแแแถแแแถแแแแแ แแแแฝแแถแแธแแแถแแแแแถแแแ แแแแแถแแถแแถ blockchain แขแถแ แแแแพแแถแแแแแแแถแแแถแ แแทแแแถแแแปแแแแแทแแถแแ
- แแทแ แแ แแแแแถแแแแถแแแ (แแแแแแแแแถแแ) แขแแปแแแแแแถแแแแแแแแแแธแแทแแแแแแแแทแ แแแแแถแแถแแผแแแถแแแแแแถแแแแแแทแ แแ แแแแแถแแแแถแแแ แแธแแแแแ แแถโแแทแโแแแแผแโแแถแโแแแแแถโแแปแโแแแโแขแแแโแ แผแโแแฝแโแแถแแโแขแแโแแ แแแปแแแแโแแแแถแแโแแโแแแโแแถแโแแถแแแแโแแธโแแทแแแโแแแแแทโแแแปแแแแแแ
- แแถแแแแแแถแแทแแแฝแแแแแแแพแแแถแแแฟแแ แแแแแแแผแแแถแแแถแแถแแแแแถแแแทแแแแแแถแแถแแแแแแถแแทแแแแแถแแแแแแแแแพแแแถแแแแปแแแฝแแ แพแแแแแพแแถแแ แแแแปแแแแแแแขแแแแแนแแแถแแ
- แแทแแแแแฝแแแถแแแถแแแแแแถแแปแแแ blockchain แแแปแแแแแ - แแถแขแถแ แแถแแ แแแพแแ แพแแแฝแแแแแทแแแแแแผแแฑแแแแถแแแถแแแแ แแแพแแแทแแแแแแทแแแแแทแแถแแแแแถแแแแแ
แแแแแแถแแแแแขแทแแแแแแแแขแแแธแแแแแแแแแถแแแแแถแแแแแแแแแแ Hyperledger Fabric แแทแแแผแแ แแแปแแแแแถแแแแพแแแถแแแถแแแทแแธแแแ แ แพแแแทแแแแแขแถแ แแแแผแแแถแแแแแพแแแ แแธแแแแ แฌแแ แแธแแแแ .
แแผแ แแแแ Hyperledger Fabric แแบแแถแแแแแแแแแแแแแทแแแแแขแแแแขแถแ แ
- แขแแปแแแแแแแแแแทแแแแถแขแถแแธแแแแแแแถแแขแแแพแ แทแแแแแแแแแแพแแแแแแถแแแทแ แแ แแแแแถแแแแถแ;
- แแแแแแแถ แแทแแแแฝแแแทแแแแแแแแธแแผแแแแแถแแแทแแแแแแ blockchain แแแแปแแแแแแแ JSON;
- แแแแแ แแทแแแแแแแแแแถแแแแถแแ แผแแแแแพ API แแแแแแแพแขแถแแแแถแแแแทแแแแถแแแแแแแ
แฅแกแผแโแแพแโแแแโแแแแแทแ โแขแแแธโแแถแโแแถแแแแถแแโแแ Hyperledger Fabric แแถโแ แปแโแแแแแโแแพแโแแแแพโแขแแแธโแแแโแแถแโแแแแแแแแ!
แแถแแแถแแแแแแแถแ blockchain
แแถแแแแแแพแแแแแ แถ
แแถแแแทแ แแ แแบแแพแแแแธแขแแปแแแแแแแแแถแ Citcoin แแถแแฝแแแนแแแปแแแถแแแผแ แแถแแแแแแแ แแแแแพแแแแแธแแฝแ แแแฝแแแถแแแแแปแแแ แแแแ แผแแแนแแแแแถแแแแแแปแแแแแธแแแแแขแแแ แแแแแแแถแแแแธแแแแธแแฝแแแ แแแแธแแฝแแแแแ แ แผแแแผแแแแแผแแแแแปแแฝแ แแแแแพแแแนแแขแแปแแแแแแแแแแแแแแแ แแแแปแแแทแ แแ แแแแแถแแแแถแแแแ แแผแ แแแแ แแพแโแแนแโแแถแโแแแแธโแแแโแแแแผแโแแถแโแแแแแโแแแโแแแแแ แแทแโแแถแโแแแแปแแแ แแทแโแแแแแธโแแแแธแ แแแแธ แแทแแแแแแธแแแแธแแบแแถแแแแแแนแแแแแแแแแแแแแแแแแถแแ Hyperledger แ แแผแ แแแแแ แพแแแฝแแแแแถแแแแแแแแแทแแทแแแแแถแแแถแแแ แแ แปแแแแแแแ แแแแปแแแนแแแแแถแแถแแแผแแแถแฑแแแ แแแถแแแ

แแฝแแแแแแแผแแแบแแถแแแแถแแแถแแแ
แแ
แปแแแแแแ แแแแแแแผแแแถแแแแแแถแแปแแแแแปแแแผแแแแแถแแแทแแแแแแ "แแแแแแทแแแแแ" แ แแถแแแแแแแแแแแบแแถแแฝแแแแแแแ แถแแแธแแแแแแแแทแแแแแแแผแแแถแแแแแแถแแปแแแ
แแแแปแ blockchain แ แแแแถแแแถแแแ
แแ
แปแแแแแแแแแแแแแแแแแแแแแแแผแแแถแแแแแถแแแแแแผแแแแแแแแแทแแแแแทแแถแแ แแแแแแแแแแแแแแแถแแแแแแผแแแถแแแแแแปแ แแผแ
แแแแแแถแแแแแแแแแแแแแทแแแแแทแแถแ แแแแแปแแแแธแแฝแแแแแผแแแถแแแแแแพแ แ แพแแแแแแแแ
แแ
แปแแแแแแแแแแแแแแแแแแแแแนแแ
แผแแแ
แแแแปแแแแแแแแแทแ
IBM Cloud
แแพแแแแแแพแแแแแธแแฝแแแ แแแแปแ . แแพแแแแธแแแแพแแแแทแแถ blockchain แแถแแแแผแแแแแแแผแแแถแแแแแพแฑแแแแแแแพแแกแพแแแ Pay-As-You-Go แ แแแแพแแแถแแแแแแแแ แแแแถแแทแแแฟแแแ แแแแแ... IBM แแแแพแแปแแแแแแแถแแแแแแแ แแทแแแแแแแแแแถแแแแถแแแแแแ แแถแแทแแแแแถแ แแแแปแแขแถแ แแทแแถแแแถแแแถ IBM แแถแแแแแแถแแแแแแแปแแแแแแถแแแแขแ แแแแขแแปแแแแถแแฑแแแขแแแแแถแแแแแแแถแ Hyperledger Fabric แแ แแแแปแแแแแแแแแแฝแแแแ แแแแปแแ แผแแ แทแแแแแแแแธแขแแแแแ แแทแแงแแถแ แแแแแถแแแแแแแ
แแถแแแแแแแแแแแบแแถแแผแแแแขแแแแแแแแแแแแทแแถ IBM Blockchain แ แแแแแทแแแแแแถแแถแแแแแถแแขแแแธแแแแแแแแแพแ blockchain แแ แแแปแแแแแแแแถแแแแแแถแแถแแแแแ แถแแขแแแธแแทแแถแแแถแแแแแทแ แแ แแถแแแแปแแแแแแ แแผแ แแแแ แแแแแถแแแแแแแแแแแแแแแพแ แแพแแแแแแพแแขแแแแแถแแแแแฝแแ

แแพแแแแแแพแแแแแถแแแแ
แแแแปแแแถแ Orderer CA, Org1 CA, Orderer Peerแ

แแพแแแแแแพแแขแแแแแแแพแแแแถแแแ

แแแแแพแ Channel แ แพแแ แ
แแถแแถ citcoinแ

แแถแแแแแแแถแแแแบแแถ blockchain แแผแ
แแแแแแถแ
แถแแแแแแพแแแแแแแแปแแแผแแแ (แแแแปแแแแแปแแแแแแแท):

แแถแแแแแแแแทแ แแ แแแแแถแแแแถแแแ
/*
* Citcoin smart-contract v1.5 for Hyperledger Fabric
* (c) Alexey Sushkov, 2019
*/
'use strict';
const { Contract } = require('fabric-contract-api');
const maxAccounts = 5;
class CitcoinEvents extends Contract {
async instantiate(ctx) {
console.info('instantiate');
let emptyList = [];
await ctx.stub.putState('accounts', Buffer.from(JSON.stringify(emptyList)));
}
// Get all accounts
async GetAccounts(ctx) {
// Get account list:
let accounts = '{}'
let accountsData = await ctx.stub.getState('accounts');
if (accountsData) {
accounts = JSON.parse(accountsData.toString());
} else {
throw new Error('accounts not found');
}
return accountsData.toString()
}
// add a account object to the blockchain state identifited by their name
async AddAccount(ctx, name, balance) {
// this is account data:
let account = {
name: name,
balance: Number(balance),
type: 'account',
};
// create account:
await ctx.stub.putState(name, Buffer.from(JSON.stringify(account)));
// Add account to list:
let accountsData = await ctx.stub.getState('accounts');
if (accountsData) {
let accounts = JSON.parse(accountsData.toString());
if (accounts.length < maxAccounts)
{
accounts.push(name);
await ctx.stub.putState('accounts', Buffer.from(JSON.stringify(accounts)));
} else {
throw new Error('Max accounts number reached');
}
} else {
throw new Error('accounts not found');
}
// return object
return JSON.stringify(account);
}
// Sends money from Account to Account
async SendFrom(ctx, fromAccount, toAccount, value) {
// get Account from
let fromData = await ctx.stub.getState(fromAccount);
let from;
if (fromData) {
from = JSON.parse(fromData.toString());
if (from.type !== 'account') {
throw new Error('wrong from type');
}
} else {
throw new Error('Accout from not found');
}
// get Account to
let toData = await ctx.stub.getState(toAccount);
let to;
if (toData) {
to = JSON.parse(toData.toString());
if (to.type !== 'account') {
throw new Error('wrong to type');
}
} else {
throw new Error('Accout to not found');
}
// update the balances
if ((from.balance - Number(value)) >= 0 ) {
from.balance -= Number(value);
to.balance += Number(value);
} else {
throw new Error('From Account: not enought balance');
}
await ctx.stub.putState(from.name, Buffer.from(JSON.stringify(from)));
await ctx.stub.putState(to.name, Buffer.from(JSON.stringify(to)));
// define and set Event
let Event = {
type: "SendFrom",
from: from.name,
to: to.name,
balanceFrom: from.balance,
balanceTo: to.balance,
value: value
};
await ctx.stub.setEvent('SendFrom', Buffer.from(JSON.stringify(Event)));
// return to object
return JSON.stringify(from);
}
// get the state from key
async GetState(ctx, key) {
let data = await ctx.stub.getState(key);
let jsonData = JSON.parse(data.toString());
return JSON.stringify(jsonData);
}
// GetBalance
async GetBalance(ctx, accountName) {
let data = await ctx.stub.getState(accountName);
let jsonData = JSON.parse(data.toString());
return JSON.stringify(jsonData);
}
// Refill own balance
async RefillBalance(ctx, toAccount, value) {
// get Account to
let toData = await ctx.stub.getState(toAccount);
let to;
if (toData) {
to = JSON.parse(toData.toString());
if (to.type !== 'account') {
throw new Error('wrong to type');
}
} else {
throw new Error('Accout to not found');
}
// update the balance
to.balance += Number(value);
await ctx.stub.putState(to.name, Buffer.from(JSON.stringify(to)));
// define and set Event
let Event = {
type: "RefillBalance",
to: to.name,
balanceTo: to.balance,
value: value
};
await ctx.stub.setEvent('RefillBalance', Buffer.from(JSON.stringify(Event)));
// return to object
return JSON.stringify(from);
}
}
module.exports = CitcoinEvents;
แแแแแทแ แถแแแแถแ แขแแแธแแแแแแแแถแแแฝแแแแ แแแถแแแแ แแธแแแแ
- แแถแแแปแแแถแแแถแ แแแพแ (AddAccount, GetAccounts, SendFrom, GetBalance, RefillBalance) แแแแแแแแแทแแธแแถแแแแแแแนแแ แ แแแแแแแพ Hyperledger Fabric APIแ
- แแปแแแถแ SendFrom แแทแ RefillBalance แแแแแพแแแแแนแแแแทแแถแแแแแแแแแแแแทแแธแแถแแแแแแแนแแแแฝแแแถแแ
- แแปแแแถแ instantiate แแแแผแโแแถแโแแโแ แ โแแแแโแแ โแแแโแแแโแแทแ แแ แแแแแถโแแแแถแแแโแแแแผแโแแถแโแแแแพโแแแแถแแแ แแถแแแทแแแ แแถแแแแผแแแถแแแแ แ แแถแแทแแแแแแแแแแแแ แแแปแแแแแแถแแแแแแแแแแแแแแทแ แแ แแแแแถแแแแถแแแแแแแถแแแแแแผแแ แแผแ แแแแ แแถแแ แถแแแแแแพแแแแแแธแแถแแฝแแขแถแแแแแ แแบแแถแแแแทแแแทแแแแข แแธแแแแแ แฅแกแผแแแแ แแ แแแแแแแแพแแแแแถแแแแแแผแแแแแแแแแทแ แแ แแแแแถแแแแถแแแ แแพแแแนแแแถแแแแแแแแแแธแแ แแ แปแแแแแแแ แแแแทแแขแธแแ แแแแปแแแพแแแแแแ)แ
- แแแแธ แแทแแแแแแธแแแแธแแบแแถแแ แแถแแแแแแแแแแทแแแแแแ JSON แ JS แแแแผแแแถแแแแแพแแแแแถแแแแถแแแแแแแแแแแแทแแแแแแแ
- แขแแแแขแถแ แแแฝแแแถแแแแแแแแ แแ แปแแแแแแแแแแแแแแแแแแแแแแแแแแพแแถแแ แ แแปแแแถแ getState แ แพแแแแแพแแ แแ แปแแแแแแแแถแแแถแแแแแแแพ putState แ
- แแ แแแแแแแแพแแแแแธ แแปแแแถแ AddAccount แแแแผแแแถแแ แ แแแแแถแแแแแแแแแแแแแผแแแถแแแแแพแกแพแแแแแแถแแแ แแแฝแแขแแทแแแแถแแแแแแธแแ แแแแปแ blockchain (maxAccounts = 5)แ แ แพแแแ แแธแแแแแถแแแถแแแแแแแแแฝแ (แแพแขแแแแแถแแแแแแแแแถแแแแ?) แแแแแถแแแ แแแแถแแแพแแกแพแแแแ แแแฝแแแแแธแ แแแ แปแแแแแแแแแฝแแแแแแแแถแ)
แแแแแถแแโแแ แแพแโแแแแปแโแแทแ แแ แแแแแถโแแแแถแแแโแแ โแแแแปแ Channel แ แพแโแแแแพโแแถโแแแแถแแแ

แแแแแพแแแแแแทแแแแแทแแถแแแแกแพแ Smart Contractแ

แแแแแแแแแถแแแแแแถแแแแแขแทแแขแแแธ Channel แแแแแแพแแแถแแแขแแแแแแถแ

แแถแแแแแแแแพแแแแฝแแแถแแแแแถแแแแถแแแถแแแแแแแแแแแแแถแ blockchain แแ
แแแแปแแแแ IBM แ แแแแถแแแแถแแแแแแแ แถแแแแแแแทแแธแแถแแแแแแแแแแแแปแแแแแพแแแถแแแ
แแแแปแ Amazon cloud แแ
แแพแแแถแแแธแแแแแทแแแแทแ (แแแแแแแขแแแธแแถแแ
แแแแปแแแแแแแแแแแถแแ)แ

แแถแแแแแแพแ GUI แแแแแถแแแแถแแ แ แแผแแแแแแ API Hyperledger Fabric
Hyperledger Fabric แแถแ API แแแแขแถแ แแแแพแแพแแแแธแ
- แแแแแพแแแถแแแ;
- แแถแแแแแแถแแแแแแถแแ แแนแแแถแแแ;
- แแถแแแแกแพแแแทแแแถแแแแแแพแแแทแ แแ แแแแแถแแแแถแแแแแ แแแแปแแแถแแแ;
- แแแแแทแแแแแทแแถแแ แ แแผแแแแแแ;
- แแแแพแแปแแแแแแแถแแขแแแธ blockchain แ
แแถแแขแแทแแแแแแแแแแแแทแแธ
แแ แแแแปแแแแแแแทแแธแแถแแแแแแแแแแแพแ แแพแแแนแแแแแพ API แแพแแแแธแ แ แแแแแทแแแแแทแแถแ แแทแแแแแแแถแแแแแพแแปแแแแแแปแแแแแ แแธแแแแแ แแพแแแถแแแแแ แแแแแ แถแแแแแแ แแแแแฝแ แ แพแแแแแแแแพแแแแทแแถ blockchain แแแแ IBM แ แแพแแแแแแ GUI แแแแแแแพแแแแแ แแ แแแแทแแแแถแแแแแแแถแแ Express.js + Vue.js + Node.js แ แขแแแแขแถแ แแแแแแขแแแแแแแถแ แแแแแกแแแแฝแแขแแแธแแแแแ แถแแแแแแพแแแแแแพแแแแแแแทแแธแแแแแถแแแแแพแแ แแ แแธแแแ แแแแปแแแนแแแปแแแแแแแแถแแแแ แแถแแแแแแแแแแถแแแแแแแแแแแแแแปแแ แผแแ แทแแแแแแแปแแ . แแแแแแแแบแแถแแแแแแทแแธแแแถแแแธแแแแแแ-แแแถแแแธแแแแแแแแถแแ แแแปแ แแแแแถแแแแแแถแ แแแทแแแแแแแแถแแแแแแถแแแแ แแแแปแแแ แแถแแแแแแแ แแถแแแแแถแแแแแแ Google แ REST API แแแถแแแแถแแแธแแแแแแ แแทแแแแถแแแธแแแ แแถแแแถแแ แ แแผแแแแแแแถแ แแแพแแ
- HyperledgerDemo/v1/init - แ แถแแแแแแพแ blockchain;
- HyperledgerDemo/v1/accounts/list โ แแแฝแแแถแแแแแแธแแแแธแแถแแแขแแ
- HyperledgerDemo/v1/account?name=Bob&balance=100 โ แแแแแพแแแแแธ Bob;
- HyperledgerDemo/v1/info?account=Bob โ แแแฝแแแถแแแแแแแถแแขแแแธแแแแธ Bob;
- HyperledgerDemo/v1/transaction?from=Bob&to=Alice&volume=2 โ แแแแแแแถแแแแธแแแธ Bob แแ Alice;
- HyperledgerDemo/v1/disconnect - แแทแแแถแแแแแแถแแแแ blockchain แ
แแถแแแทแแแแแถแขแแแธ API แแถแแฝแแแนแแงแแถแ แแแแแฝแแแแแ แผแแแแแปแ - แแแแแแทแแธแแแแธแแแแแถแแแแถแแแแแ HTTP API แ
แแแแแแทแแธแแถแแแแแแแ แแแแปแ Amazon cloud
แแแแปแแแถแแขแถแแแกแผแแแแแแแทแแธแแ Amazon แแแแแถแแแ... IBM แแ แแแแทแแขแถแ แแแกแพแแแแแแแแแธแแแแแแแแปแ แแทแแขแแปแแแแถแแฑแแแแแแปแแแแแแพแแแแถแแแธแแแแแทแแแแทแแ แแทแแธแแแแแแ cherry แแ แแแแปแแแแแ . แแแแปแโแแนแโแแพแโแแแถแแแธแโแแแแแพโแแฝแโแแแโแแทแ แแแแแถแแโแแโแแทแโแแถโแ แแโแแแแแ... แแแแแแแแถแแแแฝแแแแแปแแแแแแ แ แพแแแถแแ citcoin แแทแแแถแแแ แปแแแแแแธแแ แแพแแแแถแแ แแปแแแ) แแแแปแแแแแปแแแฝแแแแแ แผแแแผแแแแขแแแแแแแแแแถแแแแแ แถแแแ แแแแปแแขแแแแแแแพแแแแธแฑแแแแแแแแทแแแแถแแแแถแแแถแแแถแแแถแแ แแแถแแแแถแแแ แแแแแแทแแธแแถแแแแแแขแถแ แ
- แ แถแแแแแแพแ blockchain;
- แแแแแพแแแแแธแแฝแ (แแแปแแแแแฅแกแผแแแแแขแแแแแทแแขแถแ แแแแแพแแแแแธแแแแธแแถแแแแแแแแแ แแแฝแแขแแทแแแแถแแแแแแธแแแแแถแแแแแแถแแแแ แแแแปแแแทแ แแ แแแแแถแแแแถแแแแแแแผแแแถแแแถแแแแแแ แแแแปแ blockchain);
- แแแฝแแแถแแแแแแธแแแแธ;
- แแแแแแแถแแ citcoin แแแถแ Alice, Bob แแทแ Alex;
- แแแฝแแแแแนแแแแทแแถแแแ (แแแปแแแแแฅแกแผแแแแแแทแแแถแแแทแแธแแพแแแแธแแแแ แถแแแแแนแแแแทแแถแแแแแผแ แแแแแแแแแถแแแแถแแแถแแแแแ แแแปแ แแแแแถแแแแทแแถแแแถแแแแนแแแแทแแถแแแแแทแแแแแผแแแถแแแถแแแแ);
- แแแแแแแถแแแแแแแแถแ
แแแแผแแแพแแ แถแแแแแแพแ blockchainแ

แแแแแถแแแแพแแแแแแพแแแแแธแแแแแแพแ แแปแแแแแแแแแถแแแแแแแแถแแถแแฝแแแแแปแแแแ

แแพแแแแฝแแแถแแแแแแธแแแแธแแแแแถแแแถแแแขแแแ

แแพแแแแแพแแแพแแขแแแแแแแพ แแทแแขแแแแแแฝแ แ แพแแแแฝแแแถแแแแแปแแแแแแแแแฝแแแแ แแแแแทแแแพแขแแแแแแแพ แแทแแขแแแแแแฝแแแผแ
แแแแถ แแแแแแแธแแแแแแถแแแแนแแแแแผแแแถแแแแแแแแแแแแแ

แแ
แแแแปแแแแแแแ แแแป แแพแแแแแฝแแแทแแทแแแแแถแแแแแแทแแแแแทแแแแแทแแแแแทแแถแแ

แแถแแแทแ แแแแแถแขแแแธแแถแแแขแแแแถแแฝแแแนแแแแแแแทแแธแแถแแแแแแ แแถแแแแแแแขแแแแขแถแ
แแพแแแแแแทแแแแแทแแถแแแแแแแพแแแ
แแแแปแ blockchainแ

แแทแแแแแแธแแผแแ
แแแแแแแทแแแแแทแแถแแ

แแถแแฝแแแแ แแพแแแถแแแแแ
แแแแแแแแแแแแแผแแแถแแขแแปแแแแ PoC แแพแแแแธแแแแแพแแแแแแถแ Citcoin แ แแพแแแแผแแแแแพแขแแแธแแแแแพแแแแธแฑแแ Citcoin แแแแถแแแถแแแแแถแแแแแแแแแแแแถแแแแถแแแแแแแแถแแ? แแทแ
แแฝแ
โแแถแแ:
- แแ แแแแถแแแแถแแแแแแพแแแแแธ แแผแแขแแปแแแแแแถแแแแแแพแแแแฏแแแ/แแถแแถแแแแ แแแฏแแแแแแแผแแแแแแแแถแแปแแแถแแฝแแขแแแแแแแพแแแแถแแแแแแธ แแแแถแแถแแแแแแแผแแแแแแแแถแแปแแแ แแแแปแ blockchain แ
- แแแแพแแถแแแแแแแแถแแแแแแแแแถแแถแแแ แแถแแถแแแแแแแแแแผแแแถแแแแแพแแพแแแแธแแแแแแขแแแแแแแแถแแขแแแแแแแพแแแแถแแแ
- แขแแทแแแแแธแแแแแแทแแแแแทแแถแแแธแขแแแแแแแพแแแแถแแแแ แแถแแแแแถแแแธแแแแแแแแแแพแแแฏแแแแแแแแแถแแแ
แแแ แแแแธแแแแแทแแแแถแ
แแพแแแถแแขแแปแแแแแแแแแถแ Citcoin แแถแแฝแแแนแแแปแแแถแแแผแ แแถแแแแแแแ แแแแแแแแแแธ แแแฝแแแถแแแแแปแแแ แแแแ แผแแแนแแแแแถแแแแแแปแแแแแธแแแแแขแแแ แแแแแแแถแแแแธแแแแธแแฝแแแ แแแแธแแฝแแแแแ แแผแ แแแแ แแพโแแพแโแแแแผแโแ แแแถแโแแแแถแแโแแแปแแแแถแโแแแแปแโแแถแโแแแแแพแ PoC?
- แขแแแแแแแผแแแทแแแแถ blockchain แแถแแผแแ แแทแ Hyperledger Fabric แแถแแทแแแแ
- แแแแแแแพ IBM แฌ Amazon clouds;
- แแแแแถแแถแแแแแแแแแแแทแแธ JS แแทแแแแแแแแแแแแแ แแแแแแแฝแแ แแแฝแแ
- แแแแแทแแแพแแทแแแแแแแแฝแแ แแแฝแแแแแผแแแแแแถแแปแแแทแแแ แแแแปแ blockchain แแแแแปแแแแแแ แแแแปแแแผแแแแแถแแแทแแแแแแแแถแ แแแแแกแแ แแแแแถแแแแแแแแแฝแแแแแ แผแแงแแถแ แแแแแถแแฝแ PostgreSQL แ
- แ แพแแ แปแแแแแแ แแแปแแแแแแทแแแแแถแแแแทแ แแถแแแแแแ แแพแแแแถแแ แแแแแแนแ Linux แแแแถแแแแแแแแแถแแ แแแแปแแแทแแแแแแแแแแพแแแ!)
แแถแแถแแแทแแแถแแ แแถแแทแแแแแแถแแทแแแแถแแถแแแแแแแแปแแแแแแแ แแแปแแแแแขแแแแแแแผแแแแแแแนแแแแแแ!
แแแแแแแ แแพ GitHub
แแแแแโแแแโแแถแโแแถแแโแแ
โแแพโ . แแถแแแทแแแแแถแแแแแแแแแแแแถแแแ
แแถแแถแกแปแ ยซแแแถแแแธแแแแแแพยป โ แแแถแแแธแแแ Node.js
แแถแแถแกแปแ ยซแขแแทแแทแแยป - แแแถแแแธแแแแแแ Node.js
แแถแแถแกแปแ ยซblockchain"(แแแแแแแแถแแแถแแแแแแ แแทแแแผแแแแแถแแถแแแทแแแถแแ แแบแแทแแแแแพแแแถแแแ แ แพแแแแแผแแแถแแแแแแแแถแงแแถแ แแแแแแแแปแแแแแ)แ
- แแทแ แแ แแแแแถ โ แแผแแแแแแแแทแ แแ แแแแแถแแแแถแ
- แแถแแผแ - แแผแแแแขแแแแแแแพแแแแถแแแแแแแถแแแแแแพ Hyperledger Fabric API แ
- *.cds - แแแแแ แแแแแแแแแทแ แแ แแแแแถแแแแถแแแ
- แฏแแแถแ *.json - แงแแถแ แแแแแแฏแแแถแแแแแแแแ แแถแแแแแแแแแแแแแถแแแแถแแแแแพแแแแถแแ Hyperledger Fabric API
แแถแแแแถแแแแแแถแแถแแ
แถแแแแแแพแแแแปแแแแแ!
แแแแแ: www.habr.com
