Ma nā ʻatikala ma mua, ua nānā mākou i nā ʻenehana i kūkulu ʻia ai nā blockchains (He aha kā mākou e kūkulu ai i kahi blockchain?) a me nā hihia i hiki ke hoʻokō me kā lākou kōkua (No ke aha mākou e kūkulu ai i kahi hihia?). ʻO ka manawa kēia e hana me kou mau lima! No ka hoʻokō ʻana i nā pailaka a me PoC (Proof of Concept), makemake wau e hoʻohana i nā ao, no ka mea... hiki ke loaʻa iā lākou mai nā wahi a pau o ka honua a, pinepine, ʻaʻohe pono e hoʻopau i ka manawa ma ka hoʻokomo luhi ʻana o ke kaiapuni, no ka mea Aia nā hoʻonohonoho paʻa mua. No laila, e hana mākou i kahi mea maʻalahi, no ka laʻana, kahi pūnaewele no ka hoʻoili ʻana i nā kālā ma waena o nā mea komo a kapa ʻia ʻo ia ʻo Bitcoin. No kēia mea, e hoʻohana mākou i ke ao IBM a me ka honua blockchain Hyperledger Fabric. ʻO ka mea mua, e noʻonoʻo kākou no ke aha i kapa ʻia ai ʻo Hyperledger Fabric he blockchain universal?
ʻO Hyperledger Fabric - kahi blockchain āpau
ʻO ka ʻōlelo maʻamau, ʻo kahi ʻōnaehana ʻike honua:
ʻO kahi hoʻonohonoho o nā kikowaena a me kahi lako polokalamu e hana ana i ka loiloi ʻoihana;
Nā kikowaena no ka launa pū ʻana me ka ʻōnaehana;
Nā mea hana no ka hoʻopaʻa inoa ʻana, ka hōʻoia ʻana a me ka ʻae ʻana i nā mea hana / kanaka;
Hoʻopaʻa waihona waihona ʻikepili hana a me ka waihona:
Hiki ke heluhelu ʻia ka mana mana o ka Hyperledger Fabric kahua pūnaewele, a ma ka pōkole, ʻo Hyperledger Fabric kahi kahua opensource e hiki ai iā ʻoe ke kūkulu i nā poloka pilikino a hoʻokō i nā ʻaelike akamai ʻole i kākau ʻia ma nā ʻōlelo papahana JS a me Go. E nānā pono kākou i ka hoʻolālā ʻana o Hyperledger Fabric a e hōʻoia ʻo ia he ʻōnaehana holoʻokoʻa i loaʻa wale nā kikoʻī no ka mālama ʻana a me ka hoʻopaʻa ʻana i ka ʻikepili. ʻO ka mea kikoʻī, ʻo ka ʻikepili, e like me nā blockchains āpau, mālama ʻia i nā poloka i kau ʻia ma ka blockchain wale nō inā loaʻa nā mea komo i kahi ʻaelike a ma hope o ka hoʻopaʻa ʻana i ka ʻikepili ʻaʻole hiki ke hoʻoponopono mālie a holoi ʻia.
Hoʻolālā lole Hyperledger
Hōʻike ke kiʻikuhi i ka hale hana Hyperledger Fabric:
ʻO nā hui - aia nā hui i nā hoa, i.e. Aia ka blockchain ma muli o ke kākoʻo o nā hui. Hiki i nā hui like ʻole ke lilo i ʻāpana o ke ala like.
Kanal - kahi hoʻolālā kūpono e hoʻohui i nā hoa i nā hui, ʻo ia hoʻi. ua kuhikuhi ʻia ka blockchain. Hiki i ka Hyperledger Fabric ke hana like i nā blockchains me nā loina ʻoihana like ʻole.
Mea hoʻolako lawelawe lālā (MSP) he CA (Certificate Authority) no ka hoʻopuka ʻana i ka ʻike a me ka hāʻawi ʻana i nā kuleana. No ka hana ʻana i kahi node, pono ʻoe e launa pū me ka MSP.
Nā node hoa - hōʻoia i nā kālepa, mālama i ka blockchain, hoʻokō i nā ʻaelike akamai a launa pū me nā noi. He ʻike ko nā hoa (palapala kikohoʻe), i hoʻopuka ʻia e ka MSP. ʻAʻole like me ka pūnaewele Bitcoin a i ʻole Etherium, kahi i loaʻa ai nā kuleana like ʻole, ma Hyperledger Fabric nodes e pāʻani i nā kuleana like ʻole:
Peer paha hoa kākoʻo (EP) a hoʻokō i nā ʻaelike akamai.
Hoʻopaʻa hoa (CP) - e mālama wale i ka ʻikepili i loko o ka blockchain a hōʻano hou i ka "World state".
Heleuma Peer (AP) - inā komo kekahi mau hui i ka blockchain, a laila hoʻohana ʻia nā hoa heleuma no ke kamaʻilio ma waena o lākou. Pono kēlā me kēia hui i hoʻokahi a ʻoi aku paha mau hoa heleuma. Ma ka hoʻohana ʻana iā AP, hiki i kēlā me kēia hoa i loko o kahi hui ke loaʻa ka ʻike e pili ana i nā hoa āpau ma nā hui ʻē aʻe. Hoʻohana ʻia e hoʻonohonoho i ka ʻike ma waena o nā AP protocol haʻihaʻi.
Alakai Peer - inā he nui nā hoa o kahi hui, a laila ʻo ke alakaʻi wale nō o ka hoa e loaʻa nā poloka mai ka lawelawe Kauoha a hāʻawi iā lākou i ke koena o nā hoa. Hiki ke kuhikuhi ʻia ke alakaʻi ma ke ʻano statically a i ʻole ke koho ikaika ʻia e nā hoa o ka hui. Hoʻohana pū ʻia ka protocol gossip e hoʻonohonoho i ka ʻike e pili ana i nā alakaʻi.
waiwai - nā hui i waiwai a mālama ʻia ma ka blockchain. ʻOi aku ka kikoʻī, ʻo kēia ka ʻikepili waiwai nui ma JSON format. ʻO kēia ka ʻikepili i hoʻopaʻa ʻia ma ka Blockchain. Loaʻa iā lākou kahi moʻolelo, i mālama ʻia i loko o ka blockchain, a me kahi kūlana o kēia manawa, i mālama ʻia ma ka waihona "World state". Hoʻopiha ʻia nā hale ʻikepili ma muli o nā hana ʻoihana. ʻAʻohe kahua i koi ʻia, ʻo ka ʻōlelo hoʻokahi wale nō e loaʻa i ka waiwai ka mea nona a waiwai.
Ledger - aia i loko o ka Blockchain a me ka ʻikepili mokuʻāina ʻo Word, kahi e mālama ai i ke kūlana o kēia manawa. Hoʻohana ka mokuʻāina honua i ka LevelDB a i ʻole CouchDB.
Aelike akamai - me ka hoʻohana ʻana i nā ʻaelike akamai, hoʻokō ʻia ka loiloi ʻoihana o ka ʻōnaehana. Ma Hyperledger Fabric, kapa ʻia nā ʻaelike akamai i ka chaincode. Ke hoʻohana nei i ka chaincode, ua kuhikuhi ʻia nā waiwai a me nā kālepa ma luna o lākou. Ma nā ʻōlelo loea, ʻo nā ʻaelike akamai he mau polokalamu polokalamu i hoʻokō ʻia ma nā ʻōlelo papahana JS a i ʻole Go.
Ke kulekele kākoʻo - no kēlā me kēia chaincode, hiki iā ʻoe ke hoʻonohonoho i kahi kulekele e pili ana i ka nui o nā hōʻoia no kahi kālepa e manaʻo ʻia a mai wai mai. Inā ʻaʻole i hoʻonohonoho ʻia ke kulekele, a laila ʻo ka mea paʻamau: "pono e hōʻoia ʻia ke kālepa e kekahi lālā o kekahi hui ma ke kahawai." Nā laʻana o nā kulekele:
Pono e ʻae ʻia ke kālepa e kekahi luna hoʻomalu o ka hui;
Pono e hōʻoia e kekahi lālā a mea kūʻai paha o ka hui;
Pono e hōʻoia ʻia e kekahi hui hoa.
Ka lawelawe kauoha - hoʻopili i nā kālepa i loko o nā poloka a hoʻouna iā lākou i nā hoa ma ke kahawai. Hōʻoia i ka hāʻawi ʻana i nā memo i nā hoa āpau ma ka pūnaewele. Hoʻohana ʻia no nā ʻōnaehana ʻoihana Kafka mea kūʻai leka, no ka hoʻomohala ʻana a me ka hoʻāʻo ʻana Solo.
CallFlow
Hoʻopili ka palapala noi me Hyperledger Fabric me ka hoʻohana ʻana iā Go, Node.js a i ʻole Java SDK;
Hoʻokumu ka mea kūʻai i kahi kālepa tx a hoʻouna iā ia i nā hoa kākoʻo;
Hōʻoia ka Peer i ka pūlima o ka mea kūʻai, hoʻopau i ke kālepa, a hoʻouna i ka pūlima hōʻoia i ka mea kūʻai. Hoʻokō ʻia ka Chaincode ma luna o ka hoa kākoʻo, a hoʻouna ʻia ka hopena o kāna hoʻokō ʻana i nā hoa āpau. Ua kapa ʻia kēia algorithm o ka hana ʻo PBFT (Practical Byzantine Fault Tolerant) consensus. Okoa mai BFT maʻamau ʻo ka ʻoiaʻiʻo i hoʻouna ʻia ka leka a manaʻo ʻia ka hōʻoia ʻana ʻaʻole mai nā poʻe āpau, akā mai kahi hoʻonohonoho wale nō;
Ma hope o ka loaʻa ʻana o ka helu o nā pane e pili ana i ke kulekele hōʻoia, hoʻouna ʻo ia i ke kālepa i ka lawelawe Ordering;
Hoʻopuka ka lawelawe kauoha i kahi poloka a hoʻouna iā ia i nā hoa hana a pau. Mālama ka lawelawe kauoha i ka hoʻopaʻa ʻana o nā poloka, kahi e hoʻopau ai i ka mea i kapa ʻia ʻo ledger fork (e ʻike i ka ʻāpana "Forks");
Loaʻa nā hoa i kahi poloka, e nānā hou i ke kulekele hōʻoia, e kākau i ka poloka i ka blockchain a hoʻololi i ka mokuʻāina i ka "World state" DB.
ʻO kēlā mau. ʻO kēia ka hopena i ka mahele o nā kuleana ma waena o nā nodes. ʻO kēia ka mea e hōʻoia i ka paʻa a paʻa ka blockchain:
Hana nā ʻaelike akamai (chaincode) i nā hoa kākoʻo. Mālama kēia i ka hūnā o nā ʻaelike akamai, no ka mea ʻAʻole mālama ʻia e nā mea komo a pau, akā ma ke kākoʻo ʻana i nā hoa.
Pono e hana koke ke kauoha. Hoʻopaʻa ʻia kēia ma ka ʻoiaʻiʻo ʻo Ordering wale nō e hana i kahi poloka a hoʻouna iā ia i kahi hoʻonohonoho paʻa o nā hoa alakaʻi.
ʻO ka hana ʻana i nā hoa e mālama wale i ka blockchain - hiki ke nui o lākou a ʻaʻole pono lākou i ka mana a me ka hana koke.
No laila, ʻo Hyperledger Fabric kahi ʻōnaehana honua maoli e hiki ai iā ʻoe:
E hoʻokō i ka loiloi ʻoihana kūʻokoʻa me ka hoʻohana ʻana i ka mīkini ʻaelike akamai;
Hoʻopaʻa a loaʻa i ka ʻikepili mai ka waihona blockchain ma JSON format;
Hāʻawi a hōʻoia i ke komo ʻana i ka API me ka hoʻohana ʻana i ka Mana Palapala.
I kēia manawa ua maopopo iki mākou i nā kikoʻī o Hyperledger Fabric, e hana hope mākou i kahi mea pono!
Ke hoʻolaha nei i ka blockchain
Ka hoʻokumu ʻana i ka pilikia
ʻO ka hana e hoʻokō i ka pūnaewele Citcoin me kēia mau hana: hana i kahi moʻokāki, loaʻa kahi kaulike, hoʻonui i kāu moʻokāki, hoʻoili kālā mai kahi moʻokāki i kekahi. E kahakiʻi mākou i kahi kumu hoʻohālike, a mākou e hoʻokō hou ai i kahi ʻaelike akamai. No laila, e loaʻa iā mākou nā moʻokāki i ʻike ʻia e nā inoa a loaʻa kahi koena, a me kahi papa inoa o nā moʻokāki. ʻO nā moʻokāki a me kahi papa inoa o nā moʻolelo, ma ke ʻano o nā waiwai Hyperledger Fabric. No laila, he moʻolelo ko lākou a me ke kūlana o kēia manawa. E ho'āʻo wau e kaha kiʻi i kēia me ka maopopo:
ʻO nā helu kiʻekiʻe ka moku'āina o kēia manawa, i mālama ʻia ma ka waihona "World state". Aia ma lalo o lākou nā kiʻi e hōʻike ana i ka mōʻaukala i mālama ʻia ma ka blockchain. Hoʻololi ʻia ke kūlana waiwai o kēia manawa e nā kālepa. Hoʻololi wale ʻia ka Asset ma ke ʻano holoʻokoʻa, no laila, ma muli o ke kālepa ʻana, ua hana ʻia kahi mea hou, a hele ka waiwai o kēia manawa i ka mōʻaukala.
IBM Cloud
Hana mākou i kahi moʻokāki ma ao IBM. No ka hoʻohana ʻana i ka paepae blockchain, pono e hoʻonui ʻia i ka Pay-As-You-Go. ʻAʻole wikiwiki paha kēia kaʻina hana, no ka mea... Noi ʻo IBM i ka ʻike hou aʻe a hōʻoia me ka lima. Ma kahi moʻolelo maikaʻi, hiki iaʻu ke ʻōlelo aku he mau mea hoʻomaʻamaʻa maikaʻi ʻo IBM e ʻae iā ʻoe e kau i ka Hyperledger Fabric i kā lākou ao. Ua makemake au i kēia mau ʻatikala a me nā laʻana:
Eia nā kiʻi paʻi o ka IBM Blockchain platform. ʻAʻole kēia he ʻōlelo aʻo e pili ana i ka hana ʻana i kahi blockchain, akā he hōʻike wale nō o ke ʻano o ka hana. No laila, no kā mākou kumu, hana mākou i hoʻokahi Hui:
Hoʻokumu mākou i nā nodes i loko: Orderer CA, Org1 CA, Orderer Peer:
Hana mākou i nā mea hoʻohana:
E hana i kahi Kanal a kapa ʻia ʻo citcoin:
ʻO ka mea nui he blockchain ka Channel, no laila e hoʻomaka me ka block zero (Genesis block):
Ke kākau ʻana i kahi ʻaelike akamai
/*
* 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;
Ma ka intuitive, pono e maopopo nā mea a pau ma aneʻi:
Nui nā hana (AddAccount, GetAccounts, SendFrom, GetBalance, RefillBalance) e kāhea ka papahana demo me ka Hyperledger Fabric API.
Hoʻokumu nā hana SendFrom a me RefillBalance i nā hanana e loaʻa i ka papahana demo.
Kāhea ʻia ka hana instantiate i ka wā e hoʻomaka koke ʻia ai kahi ʻaelike akamai. ʻOiaʻiʻo, kapa ʻia ʻaʻole hoʻokahi wale nō, akā i kēlā me kēia manawa ke hoʻololi ʻia ka mana o ka ʻaelike akamai. No laila, he manaʻo maikaʻi ʻole ka hoʻomaka ʻana i kahi papa inoa me kahi papa ʻole, no ka mea I kēia manawa, ke hoʻololi mākou i ka mana o ka ʻaelike akamai, e nalowale mākou i ka papa inoa o kēia manawa. Akā ʻaʻole maikaʻi, aʻo wale wau).
ʻO nā moʻokāki a me ka papa inoa o nā moʻolelo he mau ʻikepili JSON. Hoʻohana ʻia ʻo JS no ka hoʻoponopono ʻikepili.
Hiki iā ʻoe ke loaʻa ka waiwai i kēia manawa o kahi waiwai me ka hoʻohana ʻana i ka hana getState, a hoʻonui iā ia me ka putState.
I ka hana ʻana i kahi moʻokāki, kāhea ʻia ka hana AddAccount, kahi i hoʻohālikelike ʻia no ka helu kiʻekiʻe o nā moʻokāki ma ka blockchain (maxAccounts = 5). A eia kahi jamb (ua ʻike ʻoe?), e alakaʻi i ka hoʻonui pau ʻole o ka helu o nā moʻolelo. Pono e pale ʻia kēlā mau hewa)
A laila, hoʻouka mākou i ka ʻaelike akamai i ka Channel a hoʻomaka koke:
E nānā i ke kālepa no ka hoʻokomo ʻana i ka Smart Contract:
E nānā i nā kikoʻī e pili ana i kā mākou Kanal:
ʻO ka hopena, loaʻa iā mākou ke kiʻikuhi aʻe o kahi pūnaewele blockchain i ke ao IBM. Hōʻike pū ke kiʻikuhi i kahi papahana demo e holo ana ma ke ao Amazon ma kahi kikowaena virtual (e pili ana iā ia ma ka ʻāpana aʻe):
Ke hana ʻana i kahi GUI no nā kelepona ʻo Hyperledger Fabric API
He API ka Hyperledger Fabric i hiki ke hoʻohana i:
E hana i ke alahele;
ʻO nā pilina pili i ke kahawai;
Ka hoʻokomo ʻana a me ka hoʻokō ʻana i nā ʻaelike akamai ma ke kahawai;
Kāhea i nā kālepa;
E noi i ka ʻike ma ka blockchain.
Hoʻomohala noi
Ma kā mākou papahana demo e hoʻohana mākou i ka API wale nō e kāhea i nā kālepa a noi i ka ʻike, no ka mea Ua hoʻopau mākou i nā ʻanuʻu i koe me ka hoʻohana ʻana i ka platform blockchain IBM. Kākau mākou i kahi GUI me ka hoʻohana ʻana i kahi waihona ʻenehana maʻamau: Express.js + Vue.js + Node.js. Hiki iā ʻoe ke kākau i ʻatikala ʻokoʻa e pili ana i ka hoʻomaka ʻana i ka hana ʻana i nā noi pūnaewele hou. Ma ʻaneʻi e waiho wau i kahi loulou i ke ʻano o nā haʻiʻōlelo aʻu i makemake nui ai: Hoʻohana pūnaewele puni honua piha me Vue.js & Express.js. ʻO ka hopena he noi mea kūʻai aku me kahi kiʻi kiʻi maʻamau i ke ʻano Hoʻolālā Mea Hana a Google. ʻO ka REST API ma waena o ka mea kūʻai aku a me ke kikowaena he mau kelepona:
HyperledgerDemo/v1/init - hoʻomaka i ka blockchain;
HyperledgerDemo/v1/accounts/list — loaʻa i kahi papa inoa o nā moʻokāki a pau;
HyperledgerDemo/v1/account?name=Bob&balance=100 — hana i ka mooolelo Bob;
HyperledgerDemo/v1/info?account=Bob — loaʻa ka ʻike e pili ana i ka moʻokāki Bob;
HyperledgerDemo/v1/transaction?from=Bob&to=Alice&volume=2 - hoʻoili i ʻelua mau kālā mai Bob iā Alice;
HyperledgerDemo/v1/disconnect - pani i ka pilina i ka blockchain.
ʻO ka wehewehe ʻana o ka API me nā laʻana i hoʻokomo ʻia i loko Pūnaewele leka uila - he polokalamu kaulana no ka hoʻāʻo ʻana i ka HTTP API.
Ke noi demo ma Amazon kapua
Ua hoʻouka au i ka noi ma Amazon no ka mea... ʻAʻole hiki iā IBM ke hoʻonui i kaʻu moʻokāki a ʻae iaʻu e hana i nā kikowaena virtual. Pehea e hoʻohui ai i kahi cherry i ka domain: www.citcoin.info. E hoʻomau wau i ke kikowaena no kekahi manawa, a laila e hoʻopau, no ka mea... Ke hāʻule nei nā keneta no ka hoʻolimalima, a ʻaʻole i helu ʻia nā ʻāpana citcoin ma ke kumukūʻai kūʻai) Ke hoʻokomo nei au i nā screenshots o ka demo i loko o ka ʻatikala i maopopo ai ka loiloi o ka hana. Hiki i ka noi demo ke:
E hoʻomaka i ka blockchain;
E hana i kahi moʻokāki (akā i kēia manawa ʻaʻole hiki iā ʻoe ke hana i kahi moʻokāki hou, no ka mea, ʻo ka helu kiʻekiʻe o nā moʻolelo i kuhikuhi ʻia ma ka ʻaelike akamai ua hiki i ka blockchain);
Loaʻa i kahi papa inoa o nā moʻokāki;
Hoʻololi i nā kālā citcoin ma waena o Alice, Bob a me Alex;
Loaʻa i nā hanana (akā i kēia manawa ʻaʻohe ala e hōʻike ai i nā hanana, no laila no ka maʻalahi, ʻōlelo ka interface ʻaʻole i kākoʻo ʻia nā hanana);
Nā hana log.
Hoʻomaka mua mākou i ka blockchain:
A laila, hana mākou i kā mākou moʻokāki, mai hoʻopau i ka manawa me ke koena:
Loaʻa iā mākou kahi papa inoa o nā moʻokāki āpau i loaʻa:
Koho mākou i ka mea hoʻouna a me ka mea i loaʻa, a loaʻa kā lākou koena. Inā like ka mea hoʻouna a me ka mea i loaʻa, a laila e hoʻopiha hou ʻia kāna moʻokāki:
Ma ka log ke nānā nei mākou i ka hoʻokō ʻana i nā hana:
ʻOiaʻiʻo, ʻo ia wale nō me ka papahana demo. Ma lalo ʻoe e ʻike ai i kā mākou kālepa ma ka blockchain:
A me ka papa inoa nui o nā kālepa:
Me kēia, ua hoʻopau maikaʻi mākou i ka hoʻokō ʻana i ka PoC e hana i ka pūnaewele Citcoin. He aha nā mea'ē aʻe e pono e hanaʻia no Citcoin e lilo i pūnaewele piha no ka hoʻoili kālā? liʻiliʻi loa:
Ma ke kahua hana moʻokāki, hoʻokō i ka hana o kahi kī pilikino / lehulehu. Pono e mālama ʻia ke kī pilikino me ka mea hoʻohana moʻokāki, pono e mālama ʻia ke kī ākea ma ka blockchain.
E hana i kahi hoʻoili kālā kahi i hoʻohana ʻia ai kahi kī lehulehu, ma mua o ka inoa, e ʻike ai i ka mea hoʻohana.
Hoʻopili i nā kālepa e hele ana mai ka mea hoʻohana i ke kikowaena me kāna kī pilikino.
hopena
Ua hoʻokō mākou i ka pūnaewele Citcoin me kēia mau hana: hoʻohui i kahi moʻokāki, loaʻa i kahi koena, hoʻonui i kāu moʻokāki, hoʻoili kālā mai kahi moʻokāki i kekahi. No laila, he aha ke kumu kūʻai iā mākou e kūkulu i kahi PoC?
Pono ʻoe e aʻo i ka blockchain ma ka laulā a me ka Hyperledger Fabric ma ke ʻano;
E aʻo e hoʻohana i nā ao IBM a i ʻole Amazon;
E aʻo i ka ʻōlelo hoʻolālā JS a me kekahi hoʻolālā pūnaewele;
Inā pono e mālama ʻia kekahi mau ʻikepili ʻaʻole i loko o ka blockchain, akā ma kahi waihona ʻokoʻa, a laila e aʻo e hoʻohui, no ka laʻana, me PostgreSQL;
A ʻo ka mea hope akā ʻaʻole ka mea liʻiliʻi loa - ʻaʻole hiki iā ʻoe ke noho i ka honua hou me ka ʻike ʻole o Linux!)
ʻOiaʻiʻo, ʻaʻole ia he ʻepekema rocket, akā pono ʻoe e hana ikaika!
Nā kumu ma GitHub
Hoʻokomo ʻia nā kumu GitHub. ʻO ka wehewehe pōkole o ka waihona:
Kakauolelo «kikowaena» — Node.js kikowaena
Kakauolelo «Client» — Node.js mea kūʻai
Kakauolelo «blockchain"(ʻO nā waiwai a me nā kī, ʻoiaʻiʻo, ʻaʻole hana a hāʻawi ʻia ma ke ʻano he laʻana wale nō):
'aelike - akamai kumu aelike code
wallet — nā kī hoʻohana no ka hoʻohana ʻana i ka Hyperledger Fabric API.
*.cds - hōʻuluʻulu mana o nā ʻaelike akamai
* .json faila - nā laʻana o nā faila hoʻonohonoho no ka hoʻohana ʻana i ka Hyperledger Fabric API