ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ื“ื™ ืื•ื™ื’ืŸ ื”ืื‘ืŸ ืžื•ืจื ืื•ืŸ ื“ื™ ื”ืขื ื˜ ืงืจื™ืฆืŸ!

ืื™ืŸ ืคืจื™ืขืจื“ื™ืงืข ืึทืจื˜ื™ืงืœืขืŸ, ืžื™ืจ ื”ืึธื‘ืŸ ื“ืขืœื˜ ืžื™ื˜ ื“ื™ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– ืื•ื™ืฃ ื•ื•ืึธืก ื‘ืœืึทืงื›ื™ื™ืึทื ื– ื–ืขื ืขืŸ ื’ืขื‘ื•ื™ื˜ (ื•ื•ืึธืก ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ ืึท ื‘ืœืึธืงื˜ืฉื™ื™ืŸ?) ืื•ืŸ ืงืึทืกืขืก ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืžื™ื˜ ื–ื™ื™ืขืจ ื”ื™ืœืฃ (ืคืืจื•ื•ืืก ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ ืึท ืคืึทืœ?). ืขืก ืื™ื– ืฆื™ื™ื˜ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ื™ืŸ ื”ืขื ื˜! ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืคึผื™ื™ืœืึทืฅ ืื•ืŸ PoC (ื“ืขืจื•ื•ื™ื™ึทื– ืคื•ืŸ ื‘ืึทื’ืจื™ืฃ), ืื™ืš ื‘ืขืกืขืจ ืฆื• ื ื•ืฆืŸ ื“ื™ ื•ื•ืืœืงื ืก, ื•ื•ื™ื™ึทืœ ... ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทืงืกืขืกื˜ ืคึฟื•ืŸ ืขืจื’ืขืฅ ืื™ืŸ ื“ืขืจ ื•ื•ืขืœื˜ ืื•ืŸ, ืึธืคื˜, ืขืก ืื™ื– ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื•ื•ื™ืกื˜ ืฆื™ื™ื˜ ืื•ื™ืฃ ื˜ื™ื“ื™ืึทืก ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ ืคื•ืŸ ื“ื™ ืกื•ื•ื™ื•ื•ืข, ื•ื•ื™ื™ึทืœ ืขืก ื–ืขื ืขืŸ ืคึผืจื™ืกืขื˜ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–. ืึทื–ื•ื™, ืœืึธื–ืŸ ืก ืžืึทื›ืŸ ืขืคึผืขืก ืคึผืฉื•ื˜, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืึท ื ืขืฅ ืคึฟืึทืจ ื˜ืจืึทื ืกืคืขืจื™ื ื’ ืงืึธื™ื ืก ืฆื•ื•ื™ืฉืŸ ืคึผืึทืจื˜ื™ืกืึทืคึผืึทื ืฅ ืื•ืŸ ืœืึธื–ืŸ ืก ื‘ืึทืฉื™ื™ื“ืŸ ืจื•ืคืŸ ืขืก ื‘ื™ื˜ืงืึธื™ืŸ. ืคึฟืึทืจ ื“ืขื ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ื“ื™ ื™ื‘ื ื•ื•ืึธืœืงืŸ ืื•ืŸ ื“ื™ ื•ื ื™ื•ื•ืขืจืกืึทืœ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ื”ื™ืคึผืขืจืœืขื“ื–ืฉืขืจ ืคืึทื‘ืจื™ืง. ืขืจืฉื˜ืขืจ, ืœืึธื–ืŸ ืก ืจืขื›ืขื ืขืŸ ืื•ื™ืก ื•ื•ืึธืก ื”ื™ืคึผืขืจืœืขื“ื–ืฉืขืจ ืคืึทื‘ืจื™ืง ืื™ื– ื’ืขืจื•ืคึฟืŸ ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ?

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ื”ื™ืคึผืขืจืœืขื“ื–ืฉืขืจ ืฉื˜ืึธืฃ - ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ

ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืกื™ืกื˜ืขื ืื™ื–:

  • ื ืกื›ื•ื ืคื•ืŸ ืกืขืจื•ื•ืขืจืก ืื•ืŸ ืึท ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื”ืึทืจืฅ ื•ื•ืึธืก ืคึผืขืจืคืึธืจืžื– ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง;
  • ื™ื ื˜ืขืจืคื™ื™ืกื™ื– ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ื“ื™ ืกื™ืกื˜ืขื;
  • ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืจืขื’ื™ืกื˜ืจืึทืฆื™ืข, ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคื•ืŸ ื“ืขื•ื•ื™ืกืขืก / ืžืขื ื˜ืฉืŸ;
  • ื“ืึทื˜ืึทื‘ืึทืกืข ืกื˜ืึธืจื™ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ืึทืœ ืื•ืŸ ืึทืจืงื™ื™ื•ื• ื“ืึทื˜ืŸ:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื•ื•ืึธืก Hyperledger Fabric ืื™ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœื™ื™ืขื ืขืŸ ืื™ืŸ ืึธื ืœื™ื™ืŸ, ืื•ืŸ ืื™ืŸ ืงื•ืจืฅ, Hyperledger Fabric ืื™ื– ืึท ืึธืคึผืขื ืกืึธื•ืจืกืข ืคึผืœืึทื˜ืคืึธืจืžืข ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ื•ื™ืขืŸ ืคึผืจื™ื•ื•ืึทื˜ ื‘ืœืึทืงืฉืึทื™ื ืก ืื•ืŸ ื•ื™ืกืคื™ืจืŸ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ืงืœื•ื’ ืงืึทื ื˜ืจืึทืงืฅ ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ื“ื™ JS ืื•ืŸ Go ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทื›ืŸ. ื–ืืœ ืก ืงื•ืง ืื™ืŸ ื“ืขื˜ืึทืœ ืื™ืŸ ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคื•ืŸ Hyperledger Fabric ืื•ืŸ ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ืึธืก ืื™ื– ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ืกื™ืกื˜ืขื ื•ื•ืึธืก ื‘ืœื•ื™ื– ื”ืื˜ ืกืคึผืขืกื™ืคื™ืงืก ืคึฟืึทืจ ืกื˜ืึธืจื™ื ื’ ืื•ืŸ ืจืขืงืึธืจื“ื™ื ื’ ื“ืึทื˜ืŸ. ื“ื™ ืกืคึผืขืฆื™ืคึฟื™ืฉืงื™ื™ื˜ ืื™ื– ืึทื– ื“ื™ ื“ืึทื˜ืŸ, ื•ื•ื™ ืื™ืŸ ืึทืœืข ื‘ืœืึธืงื˜ืฉืึทื™ื ืก, ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืื™ืŸ ื‘ืœืึทืงืก ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืขืฉื˜ืขืœื˜ ืื•ื™ืฃ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ื‘ืœื•ื™ื– ืื•ื™ื‘ ื“ื™ ืคึผืึทืจื˜ื™ืกืึทืคึผืึทื ืฅ ื“ืขืจื’ืจื™ื™ื›ืŸ ืึท ืงืึธื ืกืขื ืกื•ืก ืื•ืŸ ื ืึธืš ืจืขืงืึธืจื“ื™ื ื’ ื“ื™ ื“ืึทื˜ืŸ ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ืฉื˜ื™ืœ ืงืขืจืขืงื˜ืึทื“ ืึธื“ืขืจ ืื•ื™ืกื’ืขืžืขืงื˜.

ื”ื™ืคึผืขืจืœืขื“ื–ืฉืขืจ ืคืึทื‘ืจื™ืง ืึทืจื˜ืฉื™ื˜ืขืงื˜ื•ืจืข

ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ื•ื•ื™ื™ื–ื˜ ื“ื™ Hyperledger Fabric ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืึธืจื’ืึทื ื™ื–ืึทื˜ื™ืึธื ืก โ€” ืืจื’ืื ื™ื–ืืฆื™ ืข ืื ื˜ื”ืืœื˜ ืŸ ืžื™ื•ื—ืก , ื“ืดื” . ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ื™ื’ื–ื™ืกืฅ ืจืขื›ื˜ ืฆื• ื“ืขืจ ืฉื˜ื™ืฆืŸ ืคื•ืŸ ืึธืจื’ืึทื ืึทื–ื™ื™ืฉืึทื ื–. ืคืึทืจืฉื™ื“ืขื ืข ืึธืจื’ืึทื ืึทื–ื™ื™ืฉืึทื ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืงืึทื ืึทืœ.

ืงืึทื ืึทืœ โ€” ืึท ืœืึทื“ื–ืฉื™ืงืึทืœ ืกื˜ืจื•ืงื˜ื•ืจ ื•ื•ืึธืก ื™ื•ื ื™ื™ืฅ ืคึผื™ืจื– ืื™ืŸ ื’ืจื•ืคึผืขืก, ื“.ื”. ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ืื™ื– ืกืคึผืขืกื™ืคื™ืขื“. Hyperledger Fabric ืงืขื ืขืŸ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ ืคึผืจืึธืฆืขืก ืงื™ื™ืคืœ ื‘ืœืึทืงืฉืึทื™ื ืก ืžื™ื˜ ืคืึทืจืฉื™ื“ืขื ืข ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง.

ืžื™ื˜ื’ืœื™ื“ืขืจืฉืึทืคึฟื˜ ื‘ืึทื“ื™ื ื•ื ื’ืก ืคึผืจืึทื•ื•ื™ื™ื“ืขืจ (MSP) ืื™ื– ืึท CA (ืกืขืจื˜ื™ืคื™ืงืึทื˜ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜) ืคึฟืึทืจ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืื™ื“ืขื ื˜ื™ื˜ืขื˜ ืื•ืŸ ืึทืกื™ื™ื ื™ื ื’ ืจืึธืœืขืก. ืฆื• ืฉืึทืคึฟืŸ ืึท ื ืึธื“ืข, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ื“ื™ MSP.

ืคึผื™ื™ืจ ื ืึธื•ื“ื– - ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, ืงืจืึธื ื“ื™ ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ, ื•ื™ืกืคื™ืจืŸ ืงืœื•ื’ ืงืึทื ื˜ืจืึทืงืฅ ืื•ืŸ ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืคึผื™ืจื– ื”ืึธื‘ืŸ ืึทืŸ ืื™ื“ืขื ื˜ื™ื˜ืขื˜ (ื“ื™ื’ื™ื˜ืึทืœ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ), ื•ื•ืึธืก ืื™ื– ืืจื•ื™ืก ื“ื•ืจืš ื“ื™ MSP. ื ื™ื˜ ืขื ืœืขืš ื“ื™ ื‘ื™ื˜ืงืึธื™ืŸ ืึธื“ืขืจ ืขื˜ื”ืขืจื™ื•ื ื ืขืฅ, ื•ื•ื• ืึทืœืข ื ืึธื•ื“ื– ื”ืึธื‘ืŸ ื’ืœื™ื™ึทืš ืจืขื›ื˜, ืื™ืŸ ื”ื™ืคึผืขืจืœืขื“ื–ืฉืขืจ ืคืึทื‘ืจื™ืง ื ืึธื•ื“ื– ืฉืคึผื™ืœืŸ ืคืึทืจืฉื™ื“ืขื ืข ืจืึธืœืขืก:

  • ืคึผื™ืจื– ืืคึฟืฉืจ ืขื ื“ืึธืจืกื™ื ื’ ื™ื™ึทื ืงื•ืงื  (EP) ืื•ืŸ ื•ื™ืกืคื™ืจืŸ ืงืœื•ื’ ืงืึทื ื˜ืจืึทืงืฅ.
  • ืงืึทืžื™ื˜ื™ื ื’ ื™ื™ึทื ืงื•ืงื  (ืงืคึผ) - ื‘ืœื•ื™ื– ืฉืคึผืึธืจืŸ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ืื•ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ "ื•ื•ืขืœื˜ ืฉื˜ืึทื˜".
  • ืึทื ืงืขืจ ืคึผื™ืขืจ (ืึทืคึผ) - ืื•ื™ื‘ ืขื˜ืœืขื›ืข ืึธืจื’ืึทื ืึทื–ื™ื™ืฉืึทื ื– ืึธื ื˜ื™ื™ืœ ื ืขืžืขืŸ ืื™ืŸ ื“ื™ ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ, ืึทื ืงืขืจ ืคึผื™ืจื– ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืฆื•ื•ื™ืฉืŸ ื–ื™ื™. ื™ืขื“ืขืจ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ืžื•ื–ืŸ ื”ืึธื‘ืŸ ืื™ื™ืŸ ืึธื“ืขืจ ืžืขืจ ืึทื ืงืขืจ ืคึผื™ืจื–. ื ื™ืฆืŸ ืึทืคึผ, ื™ืขื“ืขืจ ื™ื™ึทื ืงื•ืงื  ืื™ืŸ ืึทืŸ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืึทืœืข ืคึผื™ืจื– ืื™ืŸ ืื ื“ืขืจืข ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืขืก. ื’ืขื ื™ืฆื˜ ืฆื• ืกื™ื ื’ืงืจืึทื ื™ื™ื– ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืฆื•ื•ื™ืฉืŸ ืึทืคึผืคึผืก ื™ืขื ื˜ืข ืคึผืจืึธื˜ืึธืงืึธืœ.
  • ืคื™ืจืขืจ ืคึผื™ื™ืจ - ืื•ื™ื‘ ืึทืŸ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ื”ืื˜ ืขื˜ืœืขื›ืข ืคึผื™ืจื–, ื‘ืœื•ื™ื– ื“ืขืจ ืคื™ืจืขืจ ืคื•ืŸ ื“ื™ ืคึผื™ืจื– ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ื‘ืœืึทืงืก ืคื•ืŸ ื“ื™ ืึธืจื“ืขืจื™ื ื’ ื“ื™ื ืกื˜ ืื•ืŸ ื’ืขื‘ืŸ ื–ื™ื™ ืฆื• ื“ื™ ืจืขืฉื˜ ืคื•ืŸ ื“ื™ ืคึผื™ืจื–. ื“ืขืจ ืคื™ืจืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกืคึผืขืกื™ืคื™ืขื“ ืกื˜ืึทื˜ื™ืงืœื™ ืึธื“ืขืจ ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ื“ื•ืจืš ืคึผื™ืจื– ืื™ืŸ ื“ืขืจ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข. ื“ื™ ื™ืขื ื˜ืข ืคึผืจืึธื˜ืึธืงืึธืœ ืื™ื– ืื•ื™ืš ื’ืขื ื™ืฆื˜ ืฆื• ืกื™ื ื’ืงืจืึทื ื™ื™ื– ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืคื™ืจืขืจ.

ืึทืกืขืฅ - ืขื ื˜ื™ื˜ื™ื– ื•ื•ืึธืก ื”ืึธื‘ืŸ ื•ื•ืขืจื˜ ืื•ืŸ ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืื•ื™ืฃ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ. ืžืขืจ ืกืคึผืึทืกื™ืคื™ืงืœื™, ื“ืึธืก ืื™ื– ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืŸ ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜. ื“ืึธืก ืื™ื– ื“ื™ ื“ืึทื˜ืŸ ื•ื•ืึธืก ืื™ื– ืจืขืงืึธืจื“ืขื“ ืื™ืŸ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ. ื–ื™ื™ ื”ืึธื‘ืŸ ืึท ื’ืขืฉื™ื›ื˜ืข, ื•ื•ืึธืก ืื™ื– ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ, ืื•ืŸ ืึท ืงืจืึทื ื˜ ืฉื˜ืึทื˜, ื•ื•ืึธืก ืื™ื– ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ "ื•ื•ืขืœื˜ ืฉื˜ืึทื˜" ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ืึทื˜ืึท ืกื˜ืจืึทืงื˜ืฉืขืจื– ื–ืขื ืขืŸ ืึธื ื’ืขืคื™ืœื˜ ืึทืจื‘ื™ื˜ืจืขืจืึทืœื™ ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื’ืขืฉืขืคื˜ ื˜ืึทืกืงืก. ืขืก ื–ืขื ืขืŸ ืงื™ื™ืŸ ืคืืจืœืื ื’ื˜ ืคืขืœื“ืขืจ, ื“ืขืจ ื‘ืœื•ื™ื– ืจืขืงืึธืžืขื ื“ืึทืฆื™ืข ืื™ื– ืึทื– ืึทืกืขืฅ ืžื•ื–ืŸ ื”ืึธื‘ืŸ ืึท ื‘ืึทื–ื™ืฆืขืจ ืื•ืŸ ื–ื™ื™ืŸ ื•ื•ืขืจื˜ืคื•ืœ.

ืœืขื“ื–ืฉืขืจ - ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ืื•ืŸ ื“ื™ ื•ื•ืึธืจื˜ ืฉื˜ืึทื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก, ื•ื•ืึธืก ืกื˜ืึธืจื– ื“ื™ ืงืจืึทื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ืึทืกืขืฅ. ื•ื•ืขืœื˜ ืฉื˜ืึทื˜ ื ื™ืฆื˜ LevelDB ืึธื“ืขืจ CouchDB.

ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ - ืžื™ื˜ ืงืœื•ื’ ืงืึทื ื˜ืจืึทืงืฅ, ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“. ืื™ืŸ Hyperledger Fabric, ืงืœื•ื’ ืงืึทื ื˜ืจืึทืงืฅ ื–ืขื ืขืŸ ื’ืขืจื•ืคึฟืŸ ื˜ืฉืึทื™ื ืงืึธื“ืข. ื ื™ืฆืŸ ื˜ืฉืึทื™ื ืงืึธื“ืข, ืึทืกืขืฅ ืื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืื™ื‘ืขืจ ื–ื™ื™ ื–ืขื ืขืŸ ืกืคึผืขืกื™ืคื™ืขื“. ืื™ืŸ ื˜ืขื›ื ื™ืฉ ื˜ืขืจืžื™ื ืขืŸ, ืงืœื•ื’ ืงืึทื ื˜ืจืึทืงืฅ ื–ืขื ืขืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืžืึทื“ื–ืฉื•ืœื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื“ื™ JS ืึธื“ืขืจ Go ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทื›ืŸ.

ืขื ื“ืึธืจืกืžืึทื ื˜ ืคึผืึธืœื™ื˜ื™ืง - ืคึฟืึทืจ ื™ืขื“ืขืจ ืงื™ื™ื˜ืงืึธื“ืข, ืื™ืจ ืงืขื ืขืŸ ืฉื˜ืขืœืŸ ืึท ืคึผืึธืœื™ื˜ื™ืง ืื•ื™ืฃ ื•ื•ื™ ืคื™ืœืข ืงืึทื ืคืขืจืžื™ื™ืฉืึทื ื– ืคึฟืึทืจ ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื–ืึธืœ ื–ื™ื™ืŸ ื“ืขืจื•ื•ืึทืจื˜ ืื•ืŸ ืคื•ืŸ ื•ื•ืขืžืขืŸ. ืื•ื™ื‘ ื“ื™ ืคึผืึธืœื™ื˜ื™ืง ืื™ื– ื ื™ืฉื˜ ื‘ืึทืฉื˜ื™ืžื˜, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืื™ื–: "ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื‘ืืฉื˜ืขื˜ื™ืงื˜ ื“ื•ืจืš ืงื™ื™ืŸ ืžื™ื˜ื’ืœื™ื“ ืคื•ืŸ ืงื™ื™ืŸ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ืื™ืŸ ื“ืขื ืงืึทื ืึทืœ." ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ืคึผืึทืœืึทืกื™ื–:

  • ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื‘ืื•ื•ื™ืœื™ืงื˜ ื“ื•ืจืš ืงื™ื™ืŸ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ ืคื•ืŸ ื“ืขืจ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข;
  • ืžื•ื–ืŸ ื–ื™ื™ืŸ ื‘ืืฉื˜ืขื˜ื™ืงื˜ ื“ื•ืจืš ืงื™ื™ืŸ ืžื™ื˜ื’ืœื™ื“ ืึธื“ืขืจ ืงืœื™ืขื ื˜ ืคื•ืŸ ื“ืขืจ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข;
  • ืžื•ื–ืŸ ื–ื™ื™ืŸ ื‘ืืฉื˜ืขื˜ื™ืงื˜ ื“ื•ืจืš ืงื™ื™ืŸ ื™ื™ึทื ืงื•ืงื  ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข.

ืึธืจื“ืขืจื™ื ื’ ื“ื™ื ืกื˜ - ืคึผืึทืงื˜ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืื™ืŸ ื‘ืœืึทืงืก ืื•ืŸ ืกืขื ื“ื– ื–ื™ื™ ืฆื• ืคึผื™ืจื– ืื™ืŸ ื“ืขื ืงืึทื ืึทืœ. ื’ืขืจืึทื ื˜ื™ื– ืขืงืกืคึผืจืขืก ืคื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ ืฆื• ืึทืœืข ืคึผื™ืจื– ืื•ื™ืฃ ื“ื™ ื ืขืฅ. ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ื™ื ื“ืึทืกื˜ืจื™ืึทืœ ืกื™ืกื˜ืขืžืขืŸ ืงืึทืคืงืึท ืึธื ื–ืึธื’ ืžืขืงืœืขืจ, ืคึฟืึทืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ื™ื™ื ืฆื™ืง.

CallFlow

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

  • ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึทืžื™ื•ื ื™ืงื™ื™ืฅ ืžื™ื˜ Hyperledger Fabric ื ื™ืฆืŸ Go, Node.js ืึธื“ืขืจ Java SDK;
  • ื“ืขืจ ืงืœื™ืขื ื˜ ืงืจื™ื™ื™ืฅ ืึท ื˜ืงืก ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื•ืŸ ืกืขื ื“ื– ืขืก ืฆื• ืขื ื“ืึธืจืกื™ื ื’ ืคึผื™ืจื–;
  • ื“ืขืจ ื™ื™ึทื ืงื•ืงื  ื•ื•ืขืจืึทืคื™ื™ื– ื“ื™ ื›ืกื™ืžืข ืคื•ืŸ โ€‹โ€‹ื“ืขื ืงืœื™ืขื ื˜, ืงืึทืžืคึผืœื™ืฅ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ, ืื•ืŸ ืกืขื ื“ื– ื“ื™ ืขื ื“ืึธืจืกืžืึทื ื˜ ื›ืกื™ืžืข ืฆื•ืจื™ืง ืฆื• ื“ืขื ืงืœื™ืขื ื˜. ื˜ืฉืึทื™ื ืงืึธื“ืข ืื™ื– ืขืงืกืึทืงื™ื•ื˜ืึทื“ ื‘ืœื•ื™ื– ืื•ื™ืฃ ื“ื™ ืขื ื“ืึธืจืกื™ื ื’ ื™ื™ึทื ืงื•ืงื , ืื•ืŸ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื–ื™ื™ึทืŸ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืื™ื– ื’ืขืฉื™ืงื˜ ืฆื• ืึทืœืข ืคึผื™ืจื–. ื“ืขืจ ืึทืœื’ืขืจื™ื“ืึทื ืคื•ืŸ ืึทืจื‘ืขื˜ ืื™ื– ื’ืขืจื•ืคึฟืŸ PBFT (Practical Byzantine Fault Tolerant) ืงืึธื ืกืขื ืกื•ืก. ืึทื ื“ืขืจืฉ ืคื•ืŸ ืงืœืึทืกื™ืฉ BFT ื“ืขืจ ืคืึทืงื˜ ืึทื– ื“ืขืจ ืึธื ื–ืึธื’ ืื™ื– ื’ืขืฉื™ืงื˜ ืื•ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืื™ื– ื“ืขืจื•ื•ืึทืจื˜ ื ื™ื˜ ืคื•ืŸ ืึทืœืข ืคึผืึทืจื˜ื™ืกืึทืคึผืึทื ืฅ, ืึธื‘ืขืจ ื‘ืœื•ื™ื– ืคื•ืŸ ืึท ื–ื™ื›ืขืจ ื’ืึทื ื’;
  • ื ืึธืš ื“ืขืจ ืงืœื™ืขื ื˜ ื”ืื˜ ื‘ืืงื•ืžืขืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืจืขืกืคึผืึธื ืกืขืก ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืฆื• ื“ื™ ืขื ื“ืึธืจืกืžืึทื ื˜ ืคึผืึธืœื™ื˜ื™ืง, ืขืจ ืกืขื ื“ื– ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืฆื• ื“ื™ ืึธืจื“ืขืจื™ื ื’ ื“ื™ื ืกื˜;
  • ื“ื™ ืึธืจื“ืขืจื™ื ื’ ื“ื™ื ืกื˜ ื“ื–ืฉืขื ืขืจื™ื™ืฅ ืึท ื‘ืœืึธืง ืื•ืŸ ืกืขื ื“ื– ืขืก ืฆื• ืึทืœืข ืงืึทืžื™ื˜ื™ื ื’ ืคึผื™ืจื–. ืึธืจื“ืขืจื™ื ื’ ื“ื™ื ืกื˜ ื™ื ืฉื•ืจื– ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœ ืจืขืงืึธืจื“ื™ื ื’ ืคื•ืŸ ื‘ืœืึทืงืก, ื•ื•ืึธืก ื™ืœื™ืžืึทื ื™ื™ืฅ ื“ื™ ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข ืœืขื“ื–ืฉืขืจ ื’ืึธืคึผืœ (ื–ืขืŸ ืึธืคึผื˜ื™ื™ืœื•ื ื’ "ืคืึธืจืงืก");
  • ืคึผื™ืจื– ื‘ืึทืงื•ืžืขืŸ ืึท ื‘ืœืึธืง, ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืขื ื“ืึธืจืกืžืึทื ื˜ ืคึผืึธืœื™ื˜ื™ืง ื•ื•ื™ื“ืขืจ, ืฉืจื™ื™ึทื‘ืŸ ื“ืขื ื‘ืœืึธืง ืฆื• ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ืื•ืŸ ื˜ื•ื™ืฉืŸ ื“ื™ ืฉื˜ืึทื˜ ืื™ืŸ ื“ื™ "ื•ื•ืขืœื˜ ืฉื˜ืึทื˜" ื“ื‘.

ื™ืขื ืข. ื“ืขื ืจืขื–ื•ืœื˜ืื˜ืŸ ืื™ืŸ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ืจืึธืœืขืก ืฆื•ื•ื™ืฉืŸ ื“ื™ ื ืึธื•ื“ื–. ื“ืึธืก ื™ื ืฉื•ืจื– ืึทื– ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ืื™ื– ืกืงืึทืœืึทื‘ืœืข ืื•ืŸ ื–ื™ื›ืขืจ:

  • ืกืžืึทืจื˜ ืงืึทื ื˜ืจืึทืงืฅ (ื˜ืฉื™ื™ืŸืงืึธื“ืข) ื“ื•ืจื›ืคื™ืจืŸ ืขื ื“ืึธืจืกื™ื ื’ ืคึผื™ืจื–. ื“ืขื ื™ื ืฉื•ืจื– ื“ื™ ืงืึทื ืคืึทื“ืขื ืฉื™ืึทืœืึทื˜ื™ ืคื•ืŸ ืงืœื•ื’ ืงืึทื ื˜ืจืึทืงืฅ, ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ื ื™ืฉื˜ ืกื˜ืึธืจื“ ื“ื•ืจืš ืึทืœืข ืคึผืึทืจื˜ื™ืกืึทืคึผืึทื ืฅ, ืึธื‘ืขืจ ื‘ืœื•ื™ื– ื“ื•ืจืš ืขื ื“ืึธืจืกื™ื ื’ ืคึผื™ืจื–.
  • ืึธืจื“ืขืจื™ื ื’ ื–ืึธืœ ืึทืจื‘ืขื˜ืŸ ื’ืขืฉื•ื•ื™ื ื“. ื“ืขื ืื™ื– ื™ื ืฉื•ืจื“ ื“ื•ืจืš ื“ื™ ืคืึทืงื˜ ืึทื– ืึธืจื“ืขืจื™ื ื’ ื‘ืœื•ื™ื– ืคืืจืžืขืŸ ืึท ื‘ืœืึธืง ืื•ืŸ ืกืขื ื“ื– ืขืก ืฆื• ืึท ืคืึทืจืคืขืกื˜ื™ืงื˜ ื’ืึทื ื’ ืคื•ืŸ ืคื™ืจืขืจ ืคึผื™ืจื–.
  • ืงืึทืžื™ื˜ื™ื ื’ ืคึผื™ืจื– ื ืึธืจ ืงืจืึธื ื“ื™ ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ - ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคื™ืœืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™ ืื•ืŸ ื–ื™ื™ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืžืึทื›ื˜ ืื•ืŸ ืจืขื’ืข ืึธืคึผืขืจืึทืฆื™ืข.

ืžืขืจ ื“ืขื˜ืึทื™ืœืก ื•ื•ืขื’ืŸ ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืกืึทืœื•ืฉืึทื ื– ืคื•ืŸ Hyperledger Fabric ืื•ืŸ ื•ื•ืึธืก ืขืก ืึทืจื‘ืขื˜ ืึทื–ื•ื™ ืื•ืŸ ื ื™ื˜ ืึทื ื“ืขืจืฉ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ื“ืึธ: ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืึธืจื™ื’ื™ื ืก ืึธื“ืขืจ ื“ืึธ: Hyperledger Fabric: ื ื“ื™ืกื˜ืจื™ื‘ื™ื•ื˜ื™ื“ ืึทืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืคึฟืึทืจ ืคึผืขืจืžื™ืฉืึทื ื– ื‘ืœืึธืงืงื˜ืฉืึทื™ื ืก.

ืึทื–ื•ื™, Hyperledger Fabric ืื™ื– ืึท ื‘ืืžืช ื•ื ื™ื•ื•ืขืจืกืึทืœ ืกื™ืกื˜ืขื ืžื™ื˜ ื•ื•ืึธืก ืื™ืจ ืงืขื ืขืŸ:

  • ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืžื™ื˜ ื“ื™ ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืžืขืงืึทื ื™ื–ืึทื;
  • ืจืขืงืึธืจื“ื™ืจืŸ ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜;
  • ืฉืขื ืงืขืŸ ืื•ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึทืคึผื™ ืึทืงืกืขืก ื ื™ืฆืŸ ืกืขืจื˜ื™ืคื™ืงืึทื˜ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜.

ืื™ืฆื˜ ืึทื– ืžื™ืจ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึท ื‘ื™ืกืœ ื•ื•ืขื’ืŸ ื“ื™ ืกืคึผื™ืกื™ืคื™ืงืก ืคื•ืŸ Hyperledger Fabric, ืœืึธื–ืŸ ืื•ื ื“ื– ืœืขืกืึธืฃ ื˜ืึธืŸ ืขืคึผืขืก ื ื•ืฆื™ืง!

ื“ื™ืคึผืœื™ื™ื™ื ื’ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ

ื•ื™ืกื–ืึธื’ื•ื ื’ ืคื•ืŸ ื“ื™ ืคึผืจืึธื‘ืœืขื

ื“ื™ ืึทืจื‘ืขื˜ ืื™ื– ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ Citcoin ื ืขืฅ ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ืคืึทื ื’ืงืฉืึทื ื–: ืฉืึทืคึฟืŸ ืึท ื—ืฉื‘ื•ืŸ, ื‘ืึทืงื•ืžืขืŸ ืึท ื•ื•ืึธื’, ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ื™ืŸ ื—ืฉื‘ื•ืŸ, ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืงืึธื™ื ืก ืคื•ืŸ ืื™ื™ืŸ ื—ืฉื‘ื•ืŸ ืฆื• ืื ื“ืขืจืŸ. ื–ืืœ ืก ืฆื™ืขืŸ ืึท ื›ื™ื™ืคืขืฅ ืžืึธื“ืขืœ, ื•ื•ืึธืก ืžื™ืจ ื•ื•ืขืœืŸ ื•ื•ื™ื™ึทื˜ืขืจ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืื™ืŸ ืึท ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜. ืึทื–ื•ื™, ืžื™ืจ ื•ื•ืขืœืŸ ื”ืึธื‘ืŸ ืึทืงืึทื•ื ืฅ ื•ื•ืึธืก ื–ืขื ืขืŸ ื™ื™ื“ืขื ืึทืคื™ื™ื“ ื“ื•ืจืš ื ืขืžืขืŸ ืื•ืŸ ืึทื ื˜ื”ืึทืœื˜ืŸ ืึท ื•ื•ืึธื’ ืื•ืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืึทืงืึทื•ื ืฅ. ืึทืงืึทื•ื ืฅ ืื•ืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืึทืงืึทื•ื ืฅ ื–ืขื ืขืŸ, ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื”ื™ืคึผืขืจืœืขื“ื–ืฉืขืจ ืคืึทื‘ืจื™ืง ืึทืกืขืฅ. ืึทืงืงืึธืจื“ื™ื ื’ืœื™, ื–ื™ื™ ื”ืึธื‘ืŸ ืึท ื’ืขืฉื™ื›ื˜ืข ืื•ืŸ ืึท ืงืจืึทื ื˜ ืฉื˜ืึทื˜. ืื™ืš ื•ื•ืขืœ ืคืจื•ื‘ื™ืจืŸ ืฆื• ืฆื™ื™ื›ืขื ืขืŸ ื“ืืก ืงืœืืจ:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ื“ื™ ืฉืคึผื™ืฅ ืคื™ื’ื™ืขืจื– ื–ืขื ืขืŸ ื“ื™ ืงืจืึทื ื˜ ืฉื˜ืึทื˜, ื•ื•ืึธืก ืื™ื– ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ "ื•ื•ืขืœื˜ ืฉื˜ืึทื˜" ื“ืึทื˜ืึทื‘ื™ื™ืก. ื•ื ื˜ืขืจ ื–ื™ื™ ื–ืขื ืขืŸ ืคื™ื’ื™ืขืจื– ื•ื•ืึธืก ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ื’ืขืฉื™ื›ื˜ืข ื•ื•ืึธืก ืื™ื– ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ. ื“ื™ ืงืจืึทื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ืึทืกืขืฅ ืื™ื– ืคืืจืขื ื“ืขืจื˜ ื“ื•ืจืš ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–. ื“ื™ ืึทืกืขื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ ื‘ืœื•ื™ื– ื•ื•ื™ ืึท ื’ืึทื ืฅ, ืึทื–ื•ื™ ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ, ืึท ื ื™ื™ึท ื›ื™ื™ืคืขืฅ ืื™ื– ื‘ืืฉืืคืŸ, ืื•ืŸ ื“ื™ ืงืจืึทื ื˜ ื•ื•ืขืจื˜ ืคื•ืŸ ื“ื™ ืึทืกืขื˜ ื’ื™ื™ื˜ ืื™ืŸ ื’ืขืฉื™ื›ื˜ืข.

ื™ื‘ื ืงืœืึธื•ื“

ืžื™ืจ ืžืึทื›ืŸ ืึท ื—ืฉื‘ื•ืŸ ืื™ืŸ ื™ื‘ื ื•ื•ืึธืœืงืŸ. ืฆื• ื ื•ืฆืŸ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ืคึผืœืึทื˜ืคืึธืจืžืข, ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืึทืคึผื’ืจื™ื™ื“ื™ื“ ืฆื• ืคึผื™ื™ึท-ื•ื•ื™-ืื™ืจ-ื’ื™ื™ืŸ. ื“ืขืจ ืคึผืจืึธืฆืขืก ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืฉื ืขืœ, ื•ื•ื™ื™ึทืœ ... ื™ื‘ื ืจื™ืงื•ื•ืขืก ื ืึธืš ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ืŸ ื•ื•ืขืจืึทืคื™ื™ื– ืขืก ืžืึทื ื™ื•ืึทืœื™. ืื•ื™ืฃ ืึท positive ื˜ืึธืŸ, ืื™ืš ืงืขื ืขืŸ ื–ืึธื’ืŸ ืึทื– ื™ื‘ื ื”ืื˜ ื’ื•ื˜ ื˜ืจื™ื™ื ื™ื ื’ ืžืึทื˜ืขืจื™ืึทืœืก ื•ื•ืึธืก ืœืึธื–ืŸ ืื™ืจ ืฆื• ืฆืขื•ื•ื™ืงืœืขืŸ ื”ื™ืคึผืขืจืœืขื“ื–ืฉืขืจ ืฉื˜ืึธืฃ ืื™ืŸ ื–ื™ื™ืขืจ ื•ื•ืึธืœืงืŸ. ืื™ืš ืœื™ื™ืงื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืึทืจื˜ื™ืงืœืขืŸ ืื•ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ:

ื“ื™ ืคืืœื’ืขื ื“ืข ื–ืขื ืขืŸ ืกืงืจืขืขื ืฉืึธืฅ ืคื•ืŸ ื“ื™ IBM Blockchain ืคึผืœืึทื˜ืคืึธืจืžืข. ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืึทืŸ ื™ื ืกื˜ืจื•ืงื˜ื™ืึธืŸ ืื•ื™ืฃ ื•ื•ื™ ืฆื• ืฉืึทืคึฟืŸ ืึท ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ, ืึธื‘ืขืจ ืคืฉื•ื˜ ืึท ื“ืขืžืึทื ืกื˜ืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืคืึทืจื ืขื ืคื•ืŸ ื“ื™ ืึทืจื‘ืขื˜. ืึทื–ื•ื™, ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ืฆื•ื•ืขืงืŸ, ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืžื™ืจ ืžืึทื›ืŸ ื ืึธื•ื“ื– ืื™ืŸ ืขืก: ืึธืจื“ืขืจ CA, Org1 CA, Orderer Peer:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืžื™ืจ ืžืึทื›ืŸ ื ื™ืฆืขืจืก:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืฉืึทืคึฟืŸ ืึท ืงืึทื ืึทืœ ืื•ืŸ ืจื•ืคืŸ ืขืก ืกื™ื˜ืงืึธื™ืŸ:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืขืกืกืขื ื˜ื™ืึทืœืœื™ ืงืึทื ืึทืœ ืื™ื– ืึท ื‘ืœืึธืงื˜ืฉื™ื™ืŸ, ืึทื–ื•ื™ ืขืก ืกื˜ืึทืจืฅ ืžื™ื˜ ื‘ืœืึธืง ื ื•ืœ (ื’ืขื ืขืกื™ืก ื‘ืœืึธืง):

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืฉืจื™ื™ื‘ืŸ ืึท ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜

/*
 * 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 ืคืึทื ื’ืงืฉืึทื ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ ื’ืขืฉืขืขื ื™ืฉืŸ ื•ื•ืึธืก ื“ื™ ื“ืขืžืึธ ืคึผืจืึธื’ืจืึทื ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ.
  • ื“ื™ ื™ื ืกื˜ืึทื ื˜ื™ื™ื™ื˜ ืคึฟื•ื ืงืฆื™ืข ืื™ื– ื’ืขืจื•ืคืŸ ืึทืžืึธืœ ื•ื•ืขืŸ ืึท ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืื™ื– ื™ื ืกื˜ืึทื ื˜ื™ื™ื™ื˜ื™ื“. ืื™ืŸ ืคืึทืงื˜, ืขืก ืื™ื– ื’ืขืจื•ืคืŸ ื ื™ื˜ ื ืึธืจ ืึทืžืึธืœ, ืึธื‘ืขืจ ื™ืขื“ืขืจ ืžืึธืœ ื“ื™ ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ื•ื•ืขืจืกื™ืข ืขื ื“ืขืจื•ื ื’ืขืŸ. ื“ืขืจื™ื‘ืขืจ, ื™ื ื™ืฉืึทืœื™ื–ื™ื ื’ ืึท ืจืฉื™ืžื” ืžื™ื˜ ืึท ืœื™ื™ื“ื™ืง ืžืขื ื’ืข ืื™ื– ืึท ืฉืœืขื›ื˜ ื’ืขื“ืึทื ืง, ื•ื•ื™ื™ึทืœ ืื™ืฆื˜, ื•ื•ืขืŸ ืžื™ืจ ื˜ื•ื™ืฉืŸ ื“ื™ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜, ืžื™ืจ ื•ื•ืขืœืŸ ืคืึทืจืœื™ืจืŸ ื“ื™ ืงืจืึทื ื˜ ืจืฉื™ืžื”. ืื‘ืขืจ ืขืก ืื™ื– ืึธื•ืงื™ื™, ืื™ืš ื‘ื™ืŸ ื ืึธืจ ืœืขืจื ืขืŸ).
  • ืึทืงืึทื•ื ืฅ ืื•ืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืึทืงืึทื•ื ืฅ ื–ืขื ืขืŸ JSON ื“ืึทื˜ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื–. JS ืื™ื– ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ื“ืึทื˜ืŸ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ืฉืึทืŸ.
  • ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืงืจืึทื ื˜ ื•ื•ืขืจื˜ ืคื•ืŸ ืึท ืึทืกืขื˜ ื ื™ืฆืŸ ื“ื™ getState ืคื•ื ืงืฆื™ืข ืจื•ืคืŸ, ืื•ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืขืก ืžื™ื˜ putState.
  • ื•ื•ืขืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ืึทืงืึทื•ื ื˜, ื“ื™ AddAccount ืคื•ื ืงืฆื™ืข ืื™ื– ื’ืขืจื•ืคึฟืŸ, ืื™ืŸ ื•ื•ืึธืก ืึท ืคืึทืจื’ืœื™ื™ึทืš ืื™ื– ื’ืขืžืื›ื˜ ืคึฟืึทืจ ื“ื™ ืžืึทืงืกื™ืžื•ื ื ื•ืžืขืจ ืคื•ืŸ ืึทืงืึทื•ื ืฅ ืื™ืŸ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ (ืžืึทืงืกืึทืงืึธื•ื ืฅ = 5). ืื•ืŸ ื“ืึธ ืื™ื– ืึท ื“ื–ืฉืึทืžื‘ (ื”ืึธื‘ืŸ ืื™ืจ ื‘ืืžืขืจืงื˜?), ื•ื•ืึธืก ืคื™ืจื˜ ืฆื• ืึท ืกืึธืฃ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืึทืงืึทื•ื ืฅ. ืื–ืขืœื›ืข ื’ืจื™ื™ื–ืŸ ืžื•ื– ืžืขืŸ ืื•ื™ืกืžื™ื™ื“ืŸ)

ื“ืขืจื ืึธืš, ืžื™ืจ ืœืึธื“ืŸ ื“ื™ ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืื™ืŸ ื“ื™ ืงืึทื ืึทืœ ืื•ืŸ ื™ื ืกื˜ืึทื ื˜ื™ื™ื˜ ืขืก:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ื–ืืœ ืก ืงื•ืง ืื™ืŸ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืคึฟืึทืจ ื™ื ืกื˜ืึธืœื™ื ื’ ืกืžืึทืจื˜ ืงืึธื ื˜ืจืึทืงื˜:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืœืึธืžื™ืจ ื–ืขืŸ ื“ื™ ื“ืขื˜ืึทื™ืœืก ื•ื•ืขื’ืŸ ืื•ื ื“ื–ืขืจ ืงืึทื ืึทืœ:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื“ื™ืึทื’ืจืึทืžืข ืคื•ืŸ โ€‹โ€‹ืึท ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ื ืขืฅ ืื™ืŸ ื“ื™ ื™ื‘ื ื•ื•ืึธืœืงืŸ. ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ืื•ื™ืš ื•ื•ื™ื™ื–ื˜ ืึท ื“ืขืžืึธ ืคึผืจืึธื’ืจืึทื ืคืœื™ืกื ื“ื™ืง ืื™ืŸ ื“ืขืจ ืึทืžืึทื–ืึธืŸ ื•ื•ืึธืœืงืŸ ืื•ื™ืฃ ืึท ื•ื•ื™ืจื˜ื•ืึทืœ ืกืขืจื•ื•ืขืจ (ืžืขืจ ื•ื•ืขื’ืŸ ืื™ื ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’):

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืฉืึทืคึฟืŸ ืึท GUI ืคึฟืึทืจ Hyperledger Fabric API ืจื•ืคื˜

Hyperledger Fabric ื”ืื˜ ืึทืŸ ืึทืคึผื™ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื•:

  • ืฉืึทืคึฟืŸ ืงืึทื ืึทืœ;
  • ืงืึทื ืขืงืฉืึทื ื– ื™ื™ึทื ืงื•ืงื  ื–ื™ืš ืฆื• ืงืึทื ืึทืœ;
  • ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ืื•ืŸ ื™ื ืกื˜ืึทื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืงืœื•ื’ ืงืึทื ื˜ืจืึทืงืฅ ืื™ืŸ ื“ืขื ืงืึทื ืึทืœ;
  • ืจื•ืคืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–;
  • ื‘ืขื˜ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ืฃ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ.

ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’

ืื™ืŸ ืื•ื ื“ื–ืขืจ ื“ืขืžืึธ ืคึผืจืึธื’ืจืึทื ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ื“ื™ API ื‘ืœื•ื™ื– ืฆื• ืจื•ืคืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืื•ืŸ ื‘ืขื˜ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ื•ื•ื™ื™ึทืœ ืžื™ืจ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื’ืขืขื ื“ื™ืงื˜ ื“ื™ ืจื•ืขืŸ ืกื˜ืขืคึผืก ื ื™ืฆืŸ ื“ื™ ื™ื‘ื ื‘ืœืึทืงื›ื™ื™ืŸ ืคึผืœืึทื˜ืคืึธืจืžืข. ืžื™ืจ ืฉืจื™ื™ึทื‘ืŸ ืึท GUI ื ื™ืฆืŸ ืึท ื ืึธืจืžืึทืœ ื˜ืขื›ื ืึธืœืึธื’ื™ืข ืึธื ืœื™ื™ื’ืŸ: Express.js + Vue.js + Node.js. ืื™ืจ ืงืขื ืขืŸ ืฉืจื™ื™ึทื‘ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืึทืจื˜ื™ืงืœ ื•ื•ื™ ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืžืึธื“ืขืจืŸ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ื“ืึธ ืื™ืš ื•ื•ืขืœ ืœืึธื–ืŸ ืึท ืœื™ื ืง ืฆื• ื“ื™ ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืจืขืคึฟืขืจืึทื˜ืŸ ื•ื•ืึธืก ืื™ืš ืœื™ื™ืงื˜ ืžืขืจืกื˜: ื’ืึทื ืฅ ืกื˜ืึทืง ื•ื•ืขื‘ ืึทืคึผ ื ื™ืฆืŸ Vue.js & Express.js. ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ืึท ืงืœื™ืขื ื˜-ืกืขืจื•ื•ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื™ื˜ ืึท ื‘ืึทืงืึทื ื˜ ื’ืจืึทืคื™ืงืึทืœ ืฆื•ื‘ื™ื ื“ ืื™ืŸ Google ืก ืžืึทื˜ืขืจื™ืึทืœ ืคึผืœืึทืŸ ืกื˜ื™ืœ. ื“ื™ REST API ืฆื•ื•ื™ืฉืŸ ืงืœื™ืขื ื˜ ืื•ืŸ ืกืขืจื•ื•ืขืจ ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืขื˜ืœืขื›ืข ืจื•ืคื˜:

  • HyperledgerDemo/v1/init - ื™ื ื™ืฉืึทืœื™ื™ื– ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ;
  • HyperledgerDemo/v1/accounts/list - ื‘ืึทืงื•ืžืขืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืึทืœืข ืึทืงืึทื•ื ืฅ;
  • HyperledgerDemo/v1/account?name=Bob&balance=100 โ€” ืฉืึทืคึฟืŸ ื‘ืึธื‘ ืืงืื•ื ื˜;
  • HyperledgerDemo/v1/info?account=Bob โ€” ื‘ืึทืงื•ืžืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื‘ืึธื‘ ื—ืฉื‘ื•ืŸ;
  • HyperledgerDemo/v1/transaction?from=Bob&to=Alice&volume=2 โ€” ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืฆื•ื•ื™ื™ ืงืึธื™ื ืก ืคื•ืŸ ื‘ืึธื‘ ืฆื• ืึทืœื™ืก;
  • HyperledgerDemo/v1/disconnect - ื ืึธืขื ื˜ ื“ื™ ืงืฉืจ ืฆื• ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ.

ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ API ืžื™ื˜ ื‘ื™ื™ืฉืคื™ืœืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ืคึผืึธืกื˜ืžืึทืŸ ื•ื•ืขื‘ื–ื™ื™ึทื˜ืœ - ืึท ื‘ืึทื•ื•ื•ืกื˜ ืคึผืจืึธื’ืจืึทื ืคึฟืึทืจ ื˜ืขืกื˜ื™ื ื’ HTTP API.

ื“ืขืžืึธ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ืึทืžืึทื–ืึธืŸ ื•ื•ืึธืœืงืŸ

ืื™ืš ื•ืคึผืœืึธืึทื“ืขื“ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืฆื• ืึทืžืึทื–ืึธืŸ ื•ื•ื™ื™ึทืœ ... ื™ื‘ื ืื™ื– ื ืึธืš ื ื™ืฉื˜ ื‘ื™ื›ื•ืœืช ืฆื• ืึทืคึผื’ืจื™ื™ื“ ืžื™ื™ืŸ ื—ืฉื‘ื•ืŸ ืื•ืŸ ืœืึธื–ืŸ ืžื™ืจ ืฆื• ืฉืึทืคึฟืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ืกืขืจื•ื•ืขืจืก. ื•ื•ื™ ืฆื• ืœื™ื™ื’ืŸ ืึท ืงืึทืจืฉ ืฆื• ื“ื™ ืคืขืœื“: www.citcoin.info. ืื™ืš ื•ื•ืขื˜ ื”ืึทืœื˜ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืื•ื™ืฃ ืคึฟืึทืจ ืึท ื‘ืฉืขืช, ืื•ืŸ ืงืขืจ ืขืก ืึทื•ื•ืขืง, ื•ื•ื™ื™ึทืœ ... ืกืขื ื˜ ืคึฟืึทืจ ื“ื™ื ื’ืขืŸ ื–ืขื ืขืŸ ื“ืจื™ืคึผื™ื ื’, ืื•ืŸ ืกื™ื˜ืงืึธื™ืŸ ืงืึธื™ื ืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื ืึธืš ืœื™ืกื˜ืขื“ ืื•ื™ืฃ ื“ืขืจ ื‘ืขืจื–ืข) ืื™ืš ื‘ื™ืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืกืงืจืขืขื ืฉืึธืฅ ืคื•ืŸ ื“ื™ ื“ืขืžืึธ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืึทื–ื•ื™ ืึทื– ื“ื™ ืœืึธื’ื™ืง ืคื•ืŸ ื“ื™ ืึทืจื‘ืขื˜ ืื™ื– ืงืœืึธืจ. ื“ื™ ื“ืขืžืึธ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืขื ืขืŸ:

  • ื™ื ื™ืฉืึทืœื™ื–ืข ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ;
  • ืฉืึทืคึฟืŸ ืึท ืึทืงืึทื•ื ื˜ (ืึธื‘ืขืจ ืื™ืฆื˜ ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืึทืงืึทื•ื ื˜, ื•ื•ื™ื™ึทืœ ื“ื™ ืžืึทืงืกื™ืžื•ื ื ื•ืžืขืจ ืคื•ืŸ ืึทืงืึทื•ื ืฅ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ ื“ื™ ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืื™ื– ืจื™ื˜ืฉื˜ ืื™ืŸ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ);
  • ื‘ืึทืงื•ืžืขืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืึทืงืึทื•ื ืฅ;
  • ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืกื™ื˜ืงืึธื™ืŸ ืงืึธื™ื ืก ืฆื•ื•ื™ืฉืŸ ืึทืœื™ืก, ื‘ืึธื‘ ืื•ืŸ ืึทืœืขืงืก;
  • ื‘ืึทืงื•ืžืขืŸ ื’ืขืฉืขืขื ื™ืฉืŸ (ืึธื‘ืขืจ ืื™ืฆื˜ ืขืก ืื™ื– ืงื™ื™ืŸ ื•ื•ืขื’ ืฆื• ื•ื•ื™ื™ึทื–ืŸ ื’ืขืฉืขืขื ื™ืฉืŸ, ืึทื–ื•ื™ ืคึฟืึทืจ ืคึผืึทืฉื˜ืขืก, ื“ื™ ืฆื•ื‘ื™ื ื“ ื–ืื’ื˜ ืึทื– ื’ืขืฉืขืขื ื™ืฉืŸ ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜);
  • ืงืœืึธืฅ ืึทืงืฉืึทื ื–.

ืขืจืฉื˜ืขืจ ืžื™ืจ ื™ื ื™ืฉืึทืœื™ื™ื– ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ื•ื•ื™ื™ึทื˜ืขืจ, ืžื™ืจ ืžืึทื›ืŸ ืื•ื ื“ื–ืขืจ ื—ืฉื‘ื•ืŸ, ื˜ืึธืŸ ื ื™ื˜ ื•ื•ื™ืกื˜ ืฆื™ื™ื˜ ืžื™ื˜ ื“ื™ ื•ื•ืึธื’:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืึทืœืข ื‘ื ื™ืžืฆื ืึทืงืึทื•ื ืฅ:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืžื™ืจ ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ืึธืคึผืฉื™ืงืขืจ ืื•ืŸ ื‘ืึทืงื•ืžืขืจ, ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ื–ื™ื™ืขืจ ื‘ืึทืœืึทื ืกืขืก. ืื•ื™ื‘ ื“ืขืจ ืึธืคึผืฉื™ืงืขืจ ืื•ืŸ ื‘ืึทืงื•ืžืขืจ ื–ืขื ืขืŸ ื“ื™ ื–ืขืœื‘ืข, ื–ื™ื™ืŸ ื—ืฉื‘ื•ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืจื™ืคึผืœืขื ื™ืฉื˜:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืื™ืŸ ื“ื™ ืงืœืึธืฅ ืžื™ืจ ืžืึธื ื™ื˜ืึธืจ ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืึทืงื˜ื•ืึทืœืœื™, ื“ืึธืก ืื™ื– ืึทืœืข ืžื™ื˜ ื“ื™ ื“ืขืžืึธ ืคึผืจืึธื’ืจืึทื. ื•ื ื˜ืขืจ ืื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ืื•ื ื“ื–ืขืจ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื™ืŸ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืื•ืŸ ื“ื™ ืึทืœื’ืขืžื™ื™ื ืข ืจืฉื™ืžื” ืคื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–:

ื‘ืœืึธืงื˜ืฉื™ื™ืŸ: ื•ื•ืึธืก ืคึผืึธืง ื–ืึธืœ ืžื™ืจ ื‘ื•ื™ืขืŸ?

ืžื™ื˜ ื“ืขื, ืžื™ืจ ื”ืึธื‘ืŸ ื”ืฆืœื—ื” ื’ืขืขื ื“ื™ืงื˜ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ PoC ืฆื• ืฉืึทืคึฟืŸ ื“ื™ Citcoin ื ืขืฅ. ื•ื•ืึธืก ืึทื ื“ืขืจืฉ ื“ืึทืจืฃ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืคึฟืึทืจ Citcoin ืฆื• ื•ื•ืขืจืŸ ืึท ืคื•ืœ-ืคืœืขื“ื–ืฉื“ ื ืขืฅ ืคึฟืึทืจ ื˜ืจืึทื ืกืคืขืจื™ื ื’ ืงืึธื™ื ืก? ื–ื™ื™ืขืจ ืงืœื™ื™ืŸ:

  • ืื™ืŸ ื“ืขืจ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืฉืึทืคื•ื ื’ ืคื•ืŸ ื—ืฉื‘ื•ืŸ, ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ื“ื•ืจ ืคื•ืŸ ืึท ืคึผืจื™ื•ื•ืึทื˜ / ืขืคื ื˜ืœืขืš ืฉืœื™ืกืœ. ื“ืขืจ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ืžื™ื˜ ื“ื™ ื—ืฉื‘ื•ืŸ ื‘ืึทื ื™ืฆืขืจ, ื“ืขืจ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ.
  • ืžืึทื›ืŸ ืึท ืžืึทื˜ื‘ื™ื™ืข ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืื™ืŸ ื•ื•ืึธืก ืึท ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ, ืืœื ื•ื•ื™ ืึท ื ืึธืžืขืŸ, ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ.
  • ืขื ืงืจื™ืคึผื˜ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืคื•ืŸ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ ืžื™ื˜ ื–ื™ื™ืŸ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ.

ืกืึธืฃ

ืžื™ืจ ื”ืึธื‘ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ื™ Citcoin ื ืขืฅ ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ืคืึทื ื’ืงืฉืึทื ื–: ืœื™ื™ื’ืŸ ืึท ื—ืฉื‘ื•ืŸ, ื‘ืึทืงื•ืžืขืŸ ืึท ื•ื•ืึธื’, ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ื™ืŸ ื—ืฉื‘ื•ืŸ, ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืงืึธื™ื ืก ืคื•ืŸ ืื™ื™ืŸ ื—ืฉื‘ื•ืŸ ืฆื• ืื ื“ืขืจืŸ. ืึทื–ื•ื™, ื•ื•ืึธืก ื”ืื˜ ืขืก ืงืึธืกื˜ืŸ ืื•ื ื“ื– ืฆื• ื‘ื•ื™ืขืŸ ืึท PoC?

  • ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœืขืจื ืขืŸ ื‘ืœืึธืงื˜ืฉื™ื™ืŸ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ืื•ืŸ ื”ื™ืคึผืขืจืœืขื“ื–ืฉืขืจ ืฉื˜ืึธืฃ ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ;
  • ืœืขืจืŸ ืฆื• ื ื•ืฆืŸ ื™ื‘ื ืึธื“ืขืจ ืึทืžืึทื–ืึธืŸ ื•ื•ืืœืงื ืก;
  • ืœืขืจืŸ ื“ื™ JS ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ืื•ืŸ ืขื˜ืœืขื›ืข ื•ื•ืขื‘ ืคืจื™ื™ืžื•ื•ืขืจืง;
  • ืื•ื™ื‘ ืขื˜ืœืขื›ืข ื“ืึทื˜ืŸ ื“ืึทืจืฃ ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ื ื™ืฉื˜ ืื™ืŸ ื“ื™ ื‘ืœืึทืงื›ื™ื™ื•ื•ืึทืŸ, ืึธื‘ืขืจ ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก, ืœืขืจื ืขืŸ ืฆื• ื•ื™ืกืฉื˜ื™ืžืขืŸ, ืœืžืฉืœ, ืžื™ื˜ PostgreSQL;
  • ืื•ืŸ ืœืขืฆื˜ืข ืึธื‘ืขืจ ื ื™ื˜ ืงืœืขื ืกื˜ืขืจ - ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ืœืขื‘ืŸ ืื™ืŸ ื“ื™ ืžืึธื“ืขืจืŸ ื•ื•ืขืœื˜ ืึธืŸ ื•ื•ื™ืกืŸ ืคื•ืŸ ืœื™ื ื•ืงืก!)

ืคื•ืŸ ืงื•ืจืก, ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืจืึทืงืขื˜ ื•ื•ื™ืกื ืฉืึทืคึฟื˜, ืึธื‘ืขืจ ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ ืฉื•ื•ืขืจ!

ืžืงื•ืจื™ื ืื•ื™ืฃ GitHub

ืžืงื•ืจื™ื ืฉื˜ืขืœืŸ ืื•ื™ืฃ ื’ื™ื˜ื”ื•ื‘. ืงื•ืจืฅ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™:
ืงืึทื˜ืึทืœืึธื’ ยซืฉืœื™ื—ยป โ€” Node.js ืกืขืจื•ื•ืขืจ
ืงืึทื˜ืึทืœืึธื’ ยซืงืœื™ืขื ื˜ยป โ€” Node.js ืงืœื™ืขื ื˜
ืงืึทื˜ืึทืœืึธื’ ยซื‘ืœืึธืงืงื˜ืฉืึทื™ืŸ"(ืคึผืึทืจืึทืžืขื˜ืขืจ ื•ื•ืึทืœื•ืขืก ืื•ืŸ ืฉืœื™ืกืœืขืŸ, ืคื•ืŸ ืงื•ืจืก, ื–ืขื ืขืŸ ื ื™ื˜-ืืจื‘ืขื˜ืŸ ืื•ืŸ ื–ืขื ืขืŸ ื’ืขื’ืขื‘ืŸ ื‘ืœื•ื™ื– ื•ื•ื™ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ):

  • ืงืึธื ื˜ืจืึทืงื˜ - ืงืœื•ื’ ืงืึธื ื˜ืจืึทืงื˜ ืžืงื•ืจ ืงืึธื“
  • ื‘ื™ื™ึทื˜ืœ - ื‘ืึทื ื™ืฆืขืจ ืฉืœื™ืกืœืขืŸ ืคึฟืึทืจ ื ื™ืฆืŸ ื“ื™ Hyperledger Fabric API.
  • *.ืงื“ืก - ืฆื•ื ื•ื™ืคื’ืขืฉื˜ืขืœื˜ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืงืœื•ื’ ืงืึทื ื˜ืจืึทืงืฅ
  • *.ื“ื–ืฉืกืึธืŸ ื˜ืขืงืขืก - ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืขืก ืคึฟืึทืจ ื ื™ืฆืŸ ื“ื™ Hyperledger Fabric API

ืขืก ืก ื ืึธืจ ื“ืขืจ ืึธื ื”ื™ื™ื‘!

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’