áááá˝á áááŤá áĽá áĽáá˝á áŤáłááá!
á áá°ááľ ááŁáĽáá˝ áá blockchains á¨á°áááĄáŁá¸áá á´áááááá˝ á°áááá°áá (
Hyperledger á¨áá - áááá°áá blockchain
á á á ááá ᣠáááá°áá á¨áá¨á áľáááľ á¨áá¨á°áá áá-
- á¨áááľ áááá á¨ááŤá¨ááá á¨á ááááŽá˝ áľáĽáľáĽ áĽá á¨áśááľáá áŽá;
- á¨áľáááą áá ááľá°ááĽá á áááážá˝;
- ááŁáŞáŤáá˝á/á°áá˝á ááááááĽáŁ ááá¨ááἠáĽá áááľ áááľá áľ á¨áá¨áą ááŁáŞáŤáá˝á¤
- á¨ááá áĽá á¨áá á°á áá¨áá á¨ááŤá¨áá˝ á¨ááἠááłáĄ-
ᨠHyperledger á¨áá
áá áĽáá°áá áŚáá´ááá áĽáľá á áá ááá ἠáá˝ááá˘
ááááááá á¨áá á ááá´áá¸á
áľáá á¨ááááááá á¨á¨áá á ááá´áá¸áá áŤáłáŤááĄ-
áľáá
áśá˝ - áľáá
áśá˝ áĽáŠáŤáá˝á áááá, áááľá. blockchain á áľáá
áśá˝ áľáá ááááŤáľ á á. á¨á°ááŤáŠ áľáá
áśá˝ á¨á ááľ áťáá á áŤá ááá áá˝ááá˘
á°áἠ- áĽáŠáŽá˝á á áĄáľá á¨ááŤááá á ááááŽá á ááá á, áááľá. áĽááłá á°áááˇá. ááááááá á¨áá á á ááľ áá á ááŤáł áĽáááźááá á á°ááŤáŠ á¨áááľ ááá ááŤááľ áá˝ááá˘
á¨á áŁáááľ á áááááľ á á áŤá˘ (MSP) ááááľá áááľá áľ áĽá áááá˝á áááá°áĽ CA (á¨ááľáá áá¨ááľ áŁááľááŁá) ááᢠááľááá ááááľ áááá á á¨á¤áá¤áľá áá áááááľ áŤáľáááááłáá˘
á¨á áť á áááá˝ - ááĽááśá˝á áŤá¨ááᥠᣠblockchain á áŤá¨áᚠᣠáĽáἠááá˝á áŤáľáá˝á áĽá á¨áá°áá áŞáŤáá˝ áá ááááᢠáĽáŠáŽá˝ ááłáá፠á áá¸á (á˛ááłá á°áá°ááŹáľ)ᣠáĽáąá á MSP á¨á°á°á ᢠáá áĽáá° Bitcoin ááá Etherium á ááłá¨áá¨áĽ ááá á áááá˝ áĽáŠá ááĽáľ áŤáá¸á á ááááááá á¨á¨áá ááśá˝ ááľáĽ á¨á°ááŤáŠ áááá˝á ááŤááłááĄ
- á áť ááááŁáľ á áťá áá°áá (EP) áĽá áĽáἠáŽááľáŤáśá˝á áŤáľáá˝áá˘
- ááŤáĽ áĽáŠáŤ (á˛á) - á blockchain ááľáĽ áŤááá ááἠáĽáť áŤáľááᥠáĽá "á¨ááá áááłá" áŤááá.
- ááá
á
áĽáŠáŤ (AP) - áĽá áľáá
áśá˝ á áĽáááźáá ááľáĽ á¨á°áłá°á ᣠá¨á፠ááá
á
áĽáŠáŽá˝ á ááŤá¨áá¸á ááááŁáŁáľ áŤáááááᢠáĽáŤááłááą áľáá
áľ á ááľ ááá á¨á፠á áá ááá
á
áĽáŠáŽá˝ áááŠáľ áááŁáᢠá¤áá á áá ááᣠá áľáá
áľ ááľáĽ áŤá ááááá áĽáŠáŤ á ááá˝ áľáá
áśá˝ ááľáĽ áľáá áĽáŠáŽá˝ áá áá¨á ááááľ áá˝ááᢠá á¤ááá˝ ááŤá¨á áá¨áá ááááłá°á áá á
áá
á¨áááľ ááŽáśáŽá . - á᪠á áť - á ááľ áľáá áľ áĽá áĽáŠáŽá˝ áŤááľ á¨á áťá á᪠áĽáť á¨áľáĽáá á áááááľ áĽááłáá˝á ááá áá áĽá áá°ááŠáľ áĽáŠáŽá˝ áá°áŁáᢠááŞá á áľáłá˛áľá˛ááľ áááá˝ ááá á áľáá áą ááľáĽ áŁá áĽáŠáŽá˝ á á°ááááááľ ááá¨áĽ áá˝ááᢠá¨áááľ ááŽáśáŽá áľá ááŞáá˝ áá¨áá ááááłá°áá áŤáááááá˘
ááĽá¨áśá˝ - áá áŤáá¸á áĽá á áĽáááźáá áá á¨á°á¨ááš á áŤááľá˘ á á°ááᣠáá á JSON á áá¸áľ ááá áĽá´áľ áŤáá ááἠááᢠá áĽáááźáá ááľáĽ á¨á°áááá á áá áá¨á ááᢠá blockchain ááľáĽ á¨á°á¨áḠáłáŞá áĽá áá áłá áááł á áá¸á, áĽáąá á "ááá áááľ" á¨ááἠááł ááľáĽ á¨á°á¨áá¸. áĽáá° á¨áááľ áĽáŤáá˝ áá á áááľá¨áľ á¨ááἠááá áŽá˝ á áááá° ááááᢠááá á áľááá ááľáŽá˝ á¨áá, áĽá¸áá ááá ááĽá¨áśá˝ áŁáá¤áľ áááŤá¸á áĽá áá áŤáá ááá á áá áľ.
á¨ááłáĽ áááἠ- á¨á ááá á¨ááĽá¨áľ áááł á¨ááŤá¨áá˝ Blockchain áĽá ᨠWord áľá´áľ áłáłá¤á áŤáŤáľáłáᢠá¨ááá áááľ LevelDB ááá CouchDB áá áááá˘
áááá áŽááľáŤáľ - áĽáἠáŽááľáŤáśá˝á á áá áá á¨áľáááą á¨áááľ á áááᎠá°ááŁáŤá ááááᢠá ááááááá á¨áá ááľáĽ áľáááľ áŽááľáŤáśá˝ áźáááŽáľ ááŁáá. áźáááŽáľ á áá ááᣠááĽá¨áśá˝ áĽá ááĽááśá˝ á áĽááą áá á°ááá¸ááᢠá á´áááŤá á ááááᣠáľáááľ áŽááľáŤáśá˝ á JS ááá Go ááŽááŤááá ááááá˝ á¨áá°áá አá¨áśááľáá áááá˝ áá¸áá˘
á¨áľáá ááᲠ- ááĽáŤááłááą á°áá°ááľ áŽáľ ááááľ ááĽááą áá áŤá á áá¨áááŤáá˝ áĽáá°áá á á áĽá á¨áá áĽáá°áá á á ááᲠáááááľ áá˝ááᢠáááŞáŤá áŤáá°ááᨠááŁáŞááĄ- âááĽááą á á°áᥠááľáĽ á ááááá á¨áľáá áľ á áŁá áá¨ááἠá áá áľá˘ á¨ááá˛áá˝ ááłááá˝áĄ-
- ááĽááą á ááááá á¨áľáá áą á áľá°áłáłáŞ áá˝á°á á áá áľ;
- á ááááá á¨áľáá áą á áŁá ááá á°áá á áá¨ááἠá áá áľ;
- á ááááá á áť áľáá áľ áá¨ááἠá áá áľá˘
á¨ááá á áááááľ - ááĽááśá˝á áá° áĽááŽá˝ á áá¸á áĽá á á°áᥠááľáĽ áá áĽáŠáŽá˝ áááŤáᢠá á ááłá¨ áá¨áĄ áá áá áĽáŠáŽá˝ áá áááááśá˝á ááľá¨áľ ááľáľá áá°áŁáᢠáá˘ááąáľáľáŞ áľáááśá˝ áĽá
á áá áááá
á¨áĽáŞ áá°áľ
- á áááŹá˝á GoᣠNode.js ááá Java SDK á á áá áá á¨Hyperledger Fabric áá áááááá˘
- á°áá áá ᨠtx ááĽááľ áááĽáŤá áĽá áá° áľáá á°áŞ áĽáŠáŽá˝ áááŤá;
- á áťá á¨á°áá ááá ááá áŤá¨áááŁáᣠááĽááąá áŤá áá
áá áĽá á¨áľáá ááááá áá°áá áá áááŤáᢠáźáááŽáľ á¨áá°áá á¨á á áá°á á áť áá áĽáť ááᣠáĽá á¨á áááá áá¤áľ áááá áĽáŠáŽá˝ áááŤáᢠáá
á¨áľáŤ áľáá° ááá PBFT (Practical Byzantine Fault Tolerant) áľááááľ ááŁááᢠá¨ááá áááŤá
ááá˛á BFT áááĽááą á¨á°áá¨á áĽá áá¨áááŤá á¨ááá á°áłáłááá˝ áłááá á¨á°áá°á áľáĽáľáĽ áĽáť áá á¨áá á áá; - á°áá áá á¨áľáá ááá˛á áá á¨ááááą ááážá˝á ááĽá á¨á°áá á á áá ááĽááąá áá° áľááá á áááááľ áááŤá;
- á¨áľáĽáá á áááááľ áĽááá áŤáááŤá áĽá áááá ááá áááľ áĽáŠáŽá˝ áááŤáᢠá¨ááá á áááááľ áĽááŽá˝á á á
á°á á°á¨á°á áááááĽá áŤá¨áááŁá ᣠáá
á á¨ááłáĽ á°áĽá°á ášáŤ á°áĽá á¨áá áŤáá áŤáľáááłá (
áááá áááá¨áą "ášáŤáá˝" ); - áĽáŠáŽá˝ áĽááł ááá áá, á¨áľáá ááá˛á áĽáá°áá áááľáš, áĽááłáá áá° blockchain ááá áĽá á "World state" DB ááľáĽ áŤááá áááł ááááĄ.
áĽáááŤá˘ áá á á áááá˝ ááŤá¨á áŤááá áá áá¨áááá áŤááŁá. áá blockchain áá°á á¨áá˝á áĽá á°á áááą á¨á°á á á áááá áŤá¨áááŁááĄ-
- áĽáἠáŽááľáŤáśá˝ (áťáááŽáľ) á áťáá˝á á¨áá°áá áŤá¨ááááᢠáá á¨áľáááľ áŽááľáŤáśá˝á ááľá˘áŤáááľ áŤá¨áááŁá, ááááŤáąá á ááá á°áłáłááá˝ á¨á°á¨áḠá áá°áá, ááá áá áĽáŠáŽá˝á á áá á°á áĽáť áá.
- ááá á ááĽááľ ááľáŤáľ á áá áľá˘ áá á¨á°á¨ááá á ááá áĽááłá áĽáť á ááá á áá° áá á¨á᪠áĽáŠáŽá˝ áľáĽáľáĽ á ááá ááá˘
- ááŤáĽ áĽáŠáŽá˝ blockchainá áĽáť áŤá¨ááš - áĽáááš ááአáá˝áá áĽá áĽá ááá áĽá ááŁá ááś áĽáá á áŤáľáááá¸áá.
áľá Hyperledger Fabric á¨áľá-á
áá áááľááá˝ áĽá ááá á áá
ááááľ áĽáá°áá°áŤ áĽá áŤááá áĽáá
áá á°á¨á᪠ááááŽá˝á ááááľ ááťáá-
áľááá ᣠááááááá á¨áá á¨áá¨á°ááľá ááľá¨á á¨áá˝áá áľ á áĽáááľ áááá°áá áľáááľ áá-
- áĽáἠá¨áŽááľáŤáľ áá´á á áá áá á¨áááá° á¨áááľ áĽáŤ á áááᎠáá°áá á;
- ᨠblockchain áłáłá¤á á JSON á áá¸áľ áá áą áĽá ááá á;
- á¨ááľáá áá¨ááľ áŁááľááŁá á áá áá á¨á¤áá á ááłá¨áť ááľáĄ áĽá áŤá¨áááĄá˘
áľá Hyperledger Fabric áááá áááł áľáá˝ á¨á°á¨áłá ᣠá áá¨á¨áť á ááľ á áá ááá áĽááľáá!
blockchain á áá°ááŤáľ áá
á¨á˝áአááá
á°ááŁáŠ ᨠCitcoin á ááłá¨ áá¨áĽá á¨áá¨á°ááľ á°ááŁáŤáľ áá áá°áá á áá-áá፠ááá አᣠá᪠ááłáĽ áŤáá ᣠááłáĽáá ááá ᣠáłáá˛áá˝á á¨á ááľ áá፠áá° áá áŤáľá°áááᢠá áááá áá ááľáĽ á¨á áá á°ááŁáŤá á¨ááá°áááá á¨ááá áá´á áĽááłáᢠáľááá ᣠá áľá á°ááá°á á¨ááłáá ááłáŚá˝ áĽá á᪠ááłáŚá˝ áĽá á¨áááŤáá˝ áááá ááá¨ááᢠááłáŚá˝ áĽá á¨áááŤáá˝ áááá á¨ááááááá á¨á¨áá ááĽá¨áśá˝ á ááá áá¸á. á áá á áá á¨áľ áłáŞáá áá áłá áááł á áá¸áᢠáá áá á ááá áááłá áĽáááŤáááĄ-
á¨áá°áááš á ááá˝ á "ááá áááł" á¨ááἠááł ááľáĽ á¨á°ááá á á¨á áá áááł áá¸á. á¨ááą á áłá˝ á áĽáááźáá ááľáĽ á¨á°á¨áḠáłáŞáá á¨ááŤáłáŠ ááľáá˝ á áᢠá áá áŤáá á¨ááĽá¨áľ áááł á ááĽááśá˝ á°ááá§á. ááĽá¨áą á¨áááá á á á á ááá áĽáť áá, áľááá
á ááĽááą ááááŤáľ, á á˛áľ ááá á°áá á¨, áĽá á¨ááĽá¨áą á¨á áá áá áá° áłáŞá ááľáĽ áááŁá.
IBM á°áá
ááľáĽ áá፠áĽáááĽáŤáá
á¨áĽáááźáá ááľá¨áá á áá áá áá°á¨áłá á¨áĽáááźáá á ááłá ááá አá¨áĽáááźáá áááá áŽááľáŤáľ ááá አáĽá áŤáľáá˝á ááľá°áśá˝á á¨áĽáááźáá ááľá¨á á ááĄ
á¨áá¨á°áᾠᨠIBM Blockchain ááľá¨á á á˝á áłá áá˝ áĽááłáá˝ áá¸áᢠáá áĽááłá áĽáá´áľ ááá á áĽáá°ááťá áááŞáŤ á áá°áá, ááá áá á ááá á¨áľáŤáá áá°á ááłáŤ áá. áľááá ᣠááááá˝á á ááľ áľáá áľ áĽáá°áŤáááĄ-
á ááľáĄ á áááá˝á áĽáááĽáŤááᥠOrderer CAᣠOrg1 CAᣠOrderer PeeráĄ
á°á áááá˝á áĽáááĽáŤáá-
áťáá ááá አáĽá 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;
á ááľá°áá ᣠááá ááá áĽáá ááá ááá á áá áľ-
- á¨ááłáŤ ááŽááŤá Hyperledger Fabric API á áá áá á¨áá áŤá¸á á ááŤáł á°ááŁáŤáľ (AddAccountᣠGetAccountsᣠSendFromᣠGetBalanceᣠRefillBalance) á áá˘
- SendFrom áĽá RefillBalance á°ááŁáŤáľ á¨ááłáŤ ááŽááŤá á¨ááŤááá¸áá ááľá°áśá˝ áŤáááŤáá˘
- á¨ááŁá á°ááŁá á ááľ áá áĽáἠáá á˛áá á ááŁááᢠáĽáá° áĽáááą á¨áá, á ááľ áá áĽáť á áá°áá á¨áá áŤá, ááá áá áááá áĽáἠá¨áŽááľáŤáľ áľáŞáľ á˛áá¨á. áľááá , ááááá á áŁáś áľááľá ááľááá ááĽá ááłáĽ áá, ááááŤáąá á ááᣠá¨áľáááľ áŽááľáŤáąá áľáŞáľ áľááááᣠá áá áŤááá áááá áĽááŁááᢠáá á°á á áá, áĽá¨á°ááአáá).
- áááŤáá˝ áĽá á¨áááŤáá˝ áááá á¨JSON ááἠá ááááŽá˝ áá¸áᢠJS ááá¨á á áŤáŤá áŤáááááá˘
- á¨GetState á°ááŁá áĽáŞá á áá áá á¨ááĽá¨áąá áá áłá áá ááááľ áĽá putStateá á áá áá áááá áá˝ááá˘
- áá፠á áááĽáŠá áľ áá ᨠAddAccount á°ááŁá ááŁáá áá á á áĽáááźáá ááľáĽ ááá á¨áá°áá á¨áááŤáá˝ áĽááľ (maxAccounts = 5) áá á á áá°á¨ááᢠáĽá áĽáá ááἠá á ( á áľá°áááá?) ᣠáá á áá° áááŤáá˝ áĽááľ ááá፠á¨ááá áá᪠áŤáľá¨áľááᢠáĽáá°áá áŤá áľá á°áśá˝ ááááľ á ááŁá¸á)
á ááá á áĽáἠáŽááľáŤáąá áá° áťáá áĽáááááá áĽá á ááŁá áĽáá°áááááĄ-
áľáááľ áŽááľáŤáľ áááŤá ááĽááąá áĽáááá¨áľáĄ-
áľá áťááá˝á ááááŠá áĽáááĄ-
á áá¤áąá, á IBM á°áá ááľáĽ á¨áá¨á°ááá á¨áĽáááźáá á ááłá ááľá áĽááááá. áľáá á á ááá á°áá ááľáĽ á á¨áášáá á áááá áá á¨áá°áŤ á¨ááłáŤ ááŽááŤá áŤáłáŤá (á áááĽáá ááá áľá áĽáą á¨á áá )
áHyperledger á¨áá API áĽáŞáá˝ GUI ááá á
Hyperledger á¨áá á¨áá¨á°ááľá áááľá¨á á¨ááŤáááá á¤áá á á ááá˘
- á°áἠááá áŠ;
- áááááśá˝ á áť áá° á°ááĽ;
- á á°áᥠááľáĽ áááá áŽááľáŤáśá˝á ááŤá áĽá ááá á;
- áĽáŞ ááĽááśá˝;
- á áĽáááźáá áá áá¨á áá ááá˘
á¨áá°áá áŞáŤ áááľ
á áĽá á¨ááłáŤ ááŽááŤá ááľáĽ ááĽááśá˝á ááá°áá áĽá áá¨á ááá á¨á
á¤áá áá áĽáť áĽáá áááá ᣠááááŤáąá ᨠIBM blockchain ááľá¨áá á áá áá á¨á°ááŠáľá áĽááááá˝ á¨áá°áá. áĽá á ááľ áá°á á á¨á´áááá ááá á áá áá GUI áĽáá˝ááá: Express.js + Vue.js + Node.js. áááá á¨áľá áá°áá áŞáŤáá˝á áĽáá´áľ ááá á áĽáá°áá˝á á¨á°áᨠá˝áá ááťá áá˝ááᢠáĽáá
á áŁá áá°áľáłá¸á á°á¨áłáłá áľáá
ááśá˝ á¨áááľáľ á ááá áľáťáááĄ-
- HyperledgerDemo/v1/init - blockchainá ááľááá;
- HyperledgerDemo/v1/áááŤáá˝/áááá - áááá áááŤáá˝ áááá áŤáá;
- HyperledgerDemo/v1/account?name=Bob&balance=100 â á¨áŚáĽ áá፠ááá á;
- HyperledgerDemo/v1/info?account=Bob â áľá áŚáĽ áá፠áá¨á ááááľ;
- HyperledgerDemo/v1/transaction?from=Bob&to=Alice&volume=2 â á¨áŚáĽ áá° á ááľ áááľ áłáá˛áá˝á áŤáľá°ááá;
- HyperledgerDemo/v1/ disconnect - ᨠblockchain áá áŤááá áááááľ ááá˘
á ááłááá˝ ááľáĽ á¨á°áŤá°áąáľ á¨á¤áá á ááááŤ
á¨ááłáŤ áá°áá áŞáŤ á á ááá á°áá ááľáĽ
á áááŹá˝áá áá° á ááá á°áááŠáľ ááááŤáąá... IBM á ááá áááŤáŹá ááťáťá áĽá áááŁá á°áá¨áŽá˝á áĽááľááĽá á áááá°áááᢠáźáŞ áá° ááŤá áĽáá´áľ áĽáá°ááłá¨ááĄ-
- ááááá áŤáľáááŠ;
- áá፠ááá አ(á áá áá á á˛áľ áá፠ááá á á áá˝áá, ááááŤáąá á áľáááľ áŽááľáŤáľ ááľáĽ á¨á°ááášáľ á¨áá°áá á¨ááłáĽ ááĽá á blockchain ááľáĽ áľáá°á¨á°);
- á¨áááŤáá˝ áááá ááá á;
- á á áᾠᣠáŚáĽ áĽá á áááľ ááŤá¨á á¨á˛á˛áŽá áłáá˛áá˝á áŤáľá°ááá;
- ááľá°áśá˝á ááá á (á áá áá ááľá°áśá˝á áááłá¨áľ ááá ááááľ á¨áá, áľááá ááááááľ, á ááááš ááľá°áśá˝ áĽáá°ááá°áá ááááŤá);
- á¨áááἠááľáłááť áľáááśá˝.
á ááááŞáŤ blockchainá áĽááľáááŤáá-
á ááá á áááŤá˝áá áĽáááĽáŤáá ᣠá ááłáĄ áá á áŤáŁáá-
áááá á¨ááá áááŤáá˝ áááá áĽááááááĄ-
ááŞáá áĽá á°ááŁáŠá áĽááááŁáá áĽá áááá¸áá áĽáááááᢠááŞá áĽá á°ááŁáŠ á°ááłáłá á¨áá áááŤá áááááĄ-
á áááἠááľáłááťá ááľáĽ á¨ááĽááśá˝á á áááá áĽáááŁá áŤáá-
á áĽáááąáŁ ፠áĽáť áá á¨ááłáŤ ááŽááŤáᢠá¨áá
á áłá˝ á¨áĽáá ááĽááľ á áĽáááźáá áá¨áľ áá˝áááĄ-
áĽá á á ááá á¨ááĽááśá˝ áááááĄ-
á áá
ᨠCitcoin á ááłá¨áá¨áĽ áááá á ᨠPoC áľáá áŤá á á°áłáŤ áááł á á áá
ááá. á˛á˛áŽáá áłáá˛áá˝á áááľá°ááá á¨á°áá á ááłá¨áá¨áĽ áĽáá˛áá áá áá áá°á¨á á áá áľ? á áŁá áľáá˝:
- á ááłáĽ ááá áŞáŤ á°á¨áᣠá¨áá/á¨á áἠááá áááá¨áľá á°ááŁáŤá áŤáľááᢠá¨áá ááá á¨áááŤá á°á áá áá áááἠá áá áľ áŁá¨áá ááá á áĽáááźáá ááľáĽ áááἠá áá áľá˘
- á°á áááá áááá¨áľ á¨áľá ááá á¨á áἠááá áĽá á áá á¨áááá áľá á¨áłáá˛á áááá áŤáľááá˘
- á áá ááá á¨á°á ááá áá° á áááአá¨áááą ááĽááśá˝á áŤááľáĽáŠá˘
áá°áá°ááŤ
ᨠCitcoin ááľáááá á¨áá¨á°ááľ á°ááŁáŤáľ áá á°ááŁáŤá á áľáááá-á áŤáááľ áá¨áአᣠá᪠ááłáĽ áŤáá ᣠááłáĽáá ááá ᣠáłáá˛áá˝á á¨á ááľ áá፠áá° áá áŤáľá°áááᢠáľááá ᣠPoC áááááŁáľ áá áá á áľá¨áááá?
- á á á ááá blockchain áĽá á á°áá Hyperledger Fabric ááĽááľ áŤáľáááááłá;
- IBM ááá Amazon á°áááá˝á áá áá áááŠ;
- á¨JS ááŽááŤááá ááá áĽá á ááłááľ á¨áľá áááá áááŠ;
- á ááłááľ áá¨ááá˝ á áĽáááźáá ááľáĽ áłááá á á°áᨠá¨áá¨á ááľ ááľáĽ áá¨áá¸áľ á¨ááŤáľáááá¸á á¨ááᣠáááłá ᨠPostgreSQL áá ááááľ áááŠá˘
- áĽá á¨áá¨á¨áťá áá á˘áŤááľ - áŤá ááááľ áĽáááľ á ááááá ááá ááľáĽ ááá á áá˝áá!)
áĽááἠáá, á¨áŽáŹáľ áłáááľ á áá°áá, áá á ááᎠááĽáŤáľ á ááĽááľ!
GitHub áá áááŽá˝
áááŽá˝ á áľááá áá
áŤáłáá "á ááááÂť- Node.js á áááá
áŤáłáá "á°áá áÂť - Node.js á°áá á
áŤáłáá "blockchain"(á¨áááŞáŤ áĽá´áśá˝ áĽá áááá˝, á áĽáááĽ, á¨ááá°áŠ áĽá áĽáá° ááłá áĽáť á¨á°á°áĄ áá¸á):
- áŽááľáŤáľ - áĽáἠá¨áŽááľáŤáľ ááá áŽáľ
- áŚááł â ááááááá á¨áá á¤áá á ááá áá á¨á°á áá áááá˝á˘
- *.cds - á¨áľáááľ áŽááľáŤáśá˝ á ááá˝
- *.json áááá˝ - á¨Hyperledger á¨áá á¤áá á ááá áá á¨ááááŞáŤ áááá˝ ááłááá˝
á
áá áĽáť áá!
ááá: hab.com