Blockchain: kedu PoC ka anyị ga-ewu?

Anya gị na-atụ egwu ma aka gị na-afụ ụfụ!

N'isiokwu ndị gara aga, anyị na-ekwu banyere teknụzụ ndị a na-ewu blockchain.Kedu ihe anyị kwesịrị ịmepụta blockchain?) na ikpe enwere ike ime ya site na enyemaka ha (Gịnị mere anyị ga-eji wuo ikpe?). Ọ bụ oge iji aka gị rụọ ọrụ! Iji mejuputa ndị na-anya ụgbọ elu na PoC (ihe akaebe nke echiche), m na-ahọrọ iji igwe ojii, n'ihi na ... enwere ike ịnweta ha site na ebe ọ bụla n'ụwa na, mgbe mgbe, ọ dịghị mkpa igbu oge na ntinye nke gburugburu ebe obibi na-agwụ ike, n'ihi na Enwere nhazi ntọala. Yabụ, ka anyị mee ihe dị mfe, dịka ọmụmaatụ, netwọkụ maka ịnyefe mkpụrụ ego n'etiti ndị sonyere na ka anyị jiri obi umeala kpọọ ya Bitcoin. Maka nke a, anyị ga-eji igwe ojii IBM na ihe mgbochi hyperledger zuru ụwa ọnụ. Nke mbụ, ka anyị chọpụta ihe kpatara eji akpọ Hyperledger Fabric blockchain zuru ụwa ọnụ?

Blockchain: kedu PoC ka anyị ga-ewu?

Hyperledger Fabric - blockchain zuru ụwa ọnụ

N'ikwu okwu n'ozuzu, usoro ozi zuru ụwa ọnụ bụ:

  • Otu ihe nkesa na isi ngwanrọ na-arụ ọrụ mgbagha;
  • Njikọ maka mmekọrịta na usoro;
  • Ngwa maka ndebanye aha, nyocha na ikike nke ngwaọrụ / ndị mmadụ;
  • Ebe nchekwa data arụ ọrụ yana data ebe nchekwa:

Blockchain: kedu PoC ka anyị ga-ewu?

Enwere ike ịgụ ụdị ọrụ nke ihe Hyperledger Fabric na saịtị, na na nkenke, Hyperledger Fabric bụ ikpo okwu mepere emepe nke na-enye gị ohere ịmepụta blockchains nkeonwe ma mebie nkwekọrịta smart aka ike nke edere n'asụsụ mmemme JS na Go. Ka anyị leba anya n'ụzọ zuru ezu na ije nke Hyperledger Fabric ma hụ na nke a bụ usoro zuru ụwa ọnụ nke nwere naanị nkọwa maka ịchekwa na ịdekọ data. Ihe a kapịrị ọnụ bụ na a na-echekwa data ahụ, dị ka ọ dị na blockchain niile, na ngọngọ nke etinyere na blockchain naanị ma ọ bụrụ na ndị sonyere na-enweta nkwenye na mgbe ha dekọchara data enweghị ike idozi ma ọ bụ hichapụ ya nwayọ.

Ihe owuwu akwa Hyperledger

Eserese a na-egosi ụkpụrụ ụlọ ọrụ Hyperledger:

Blockchain: kedu PoC ka anyị ga-ewu?

Nhazi - otu nwere ndị ọgbọ, ya bụ. blockchain dị n'ihi nkwado nke otu. Òtù dị iche iche nwere ike ịbụ akụkụ nke otu ọwa.

Channel - usoro ezi uche dị na ya nke na-ejikọta ndị ọgbọ n'ime otu, ya bụ. akọwapụtara blockchain. Hyperledger Fabric nwere ike hazie otutu blockchain n'otu oge yana mgbagha azụmaahịa dị iche iche.

Onye na-eweta ọrụ otu (MSP) bụ CA (Sertificate Authority) maka ịnye njirimara na ikenye ọrụ. Iji mepụta ọnụ, ịkwesịrị ịmekọrịta na MSP.

Ọnụ ndị ọgbọ - nyochaa azụmahịa, chekwaa blockchain, mebie nkwekọrịta smart ma soro ngwa na-emekọrịta ihe. Ndị ọgbọ nwere njirimara (akwụkwọ dijitalụ), nke MSP nyere. N'adịghị ka netwọk Bitcoin ma ọ bụ Etherium, ebe ọnụ ọgụgụ niile nwere ikike nha anya, na Hyperledger Fabric nodes na-arụ ọrụ dị iche iche:

  • Ndị ọgbọ nwere ike na-akwado ndị ọgbọ (EP) ma mebie nkwekọrịta smart.
  • Na-eme ndị ọgbọ (CP) - naanị chekwaa data na blockchain wee melite “steeti ụwa”.
  • Anchor Peer (AP) - ọ bụrụ na ọtụtụ òtù na-ekere òkè na blockchain, mgbe ahụ, a na-eji ndị ọgbọ arịlịka maka nkwurịta okwu n'etiti ha. Ụlọ ọrụ ọ bụla ga-enwerịrị otu ma ọ bụ karịa ndị ọgbọ arịlịka. N'iji AP, ndị ọgbọ ọ bụla na nzukọ nwere ike nweta ozi gbasara ndị ọgbọ niile na òtù ndị ọzọ. Ejiri iji mekọrịta ozi n'etiti AP protocol asịrị.
  • Onye ndu ọgbọ - ọ bụrụ na otu nzukọ nwere ọtụtụ ndị ọgbọ, mgbe ahụ, ọ bụ naanị onye ndu nke ndị ọgbọ ga-enweta ngọngọ site na ọrụ nhazi ma nye ha ndị ọgbọ ndị ọzọ. Enwere ike ịkọwa onye ndu ahụ n'ụzọ kwụ ọtọ ma ọ bụ họrọ nke ọma site n'aka ndị ọgbọ nọ na nzukọ ahụ. A na-ejikwa usoro ịgba asịrị na-ejikọta ozi gbasara ndị isi.

akụ - ụlọ ọrụ nwere uru na echekwara na blockchain. Kpọmkwem, nke a bụ data bara uru n'ụdị JSON. Ọ bụ data a ka edere na Blockchain. Ha nwere akụkọ ihe mere eme, nke a na-echekwa na blockchain, na ọnọdụ dị ugbu a, nke echekwara na nchekwa data "Ụwa steeti". A na-ejupụta ihe owuwu data n'ụzọ aka ike dabere na ọrụ azụmahịa. Enweghị mpaghara achọrọ, naanị nkwanye bụ na akụ ga-enwerịrị onye nwe ya ma baa uru.

Igha - mejupụtara Blockchain na nchekwa data steeti Okwu, nke na-echekwa ọnọdụ akụ dị ugbu a. Steeti ụwa na-eji LevelDB ma ọ bụ CouchDB.

Nkwekorita Smart - iji smart contracts, a na-emejuputa atumatu azụmahịa nke usoro. Na Hyperledger Fabric, a na-akpọ nkwekọrịta smart chaincode. Iji chaincode, akụ na azụmahịa n'elu ha ka akọwapụtara. N'okwu teknụzụ, nkwekọrịta smart bụ modul sọftụwia etinyere n'asụsụ mmemme JS ma ọ bụ Go.

Amụma nkwado - maka chaincode ọ bụla, ị nwere ike ịtọ amụma ole nkwenye maka azụmahịa kwesịrị ịtụ anya na onye. Ọ bụrụ na edobeghi amụma a, mgbe ahụ nke ndabara bụ: "onye ọ bụla so na nzukọ ọ bụla na ọwa ga-ekwenyerịrị azụmahịa ahụ." Ọmụmaatụ nke amụma:

  • Onye nchịkwa ọ bụla nke nzukọ ahụ ga-akwadorịrị azụmahịa ahụ;
  • Onye otu ma ọ bụ onye ahịa nke nzukọ a ga-ekwenyerịrị;
  • Ndị otu ọgbọ ọ bụla ga-ekwenyerịrị.

Ọrụ ịtụ - ngwugwu azụmahịa n'ime blocks na-eziga ha ndị ọgbọ na ọwa. Na-ekwe nkwa izipu ozi nye ndị ọgbọ niile nọ na netwọkụ. Eji maka usoro mmepụta ihe Onye na-ere ahịa ozi Kafka, maka mmepe na ule RockSmith.

Ọkpụkpọ oku

Blockchain: kedu PoC ka anyị ga-ewu?

  • Ngwa a na-ekwurịta okwu na Hyperledger Fabric site na iji Go, Node.js ma ọ bụ Java SDK;
  • Onye ahịa ahụ na-emepụta azụmahịa tx ma ziga ya na ndị ọgbọ na-akwado;
  • Ndị ọgbọ na-enyocha mbinye aka onye ahịa, mechaa azụmahịa ahụ, ma ziga mbinye aka nkwado azụ na onye ahịa. A na-eme Chaincode naanị na ndị ọgbọ na-akwado ya, a na-ezigara ndị ọgbọ niile nsonaazụ nke ogbugbu ya. A na-akpọ algọridim ọrụ a PBFT (Practical Byzantine Fault Tolerant) nkwenye. dị iche na kpochapụwo BFT eziokwu ahụ bụ na ezipụ ozi ahụ na nkwenye na-atụ anya ọ bụghị n'aka ndị niile sonyere, kama ọ bụ naanị site na otu setịpụrụ;
  • Mgbe onye ahịa natara ọnụọgụ nzaghachi kwekọrọ na iwu nkwado ahụ, ọ na-eziga azụmahịa ahụ na ọrụ nhazi;
  • Ọrụ ịtụ ahịa na-ewepụta ngọngọ ma zigara ya ndị ọgbọ niile na-eme ihe. Ọrụ inye iwu na-eme ka ịdekọ usoro nke blocks, nke na-ewepụ ihe a na-akpọ ndụdụ akwụkwọ akụkọ (lee ngalaba "Forks");
  • Ndị ọgbọ na-enweta ngọngọ, lelee iwu nkwado ọzọ, dee ngọngọ na blockchain ma gbanwee steeti na "Ụwa steeti" DB.

Ndị ahụ. Nke a na-ebute nkewa nke ọrụ n'etiti ọnụ ọnụ. Nke a na-eme ka blockchain nwee ike ịgbatị ma chekwaa:

  • Nkwekọrịta smart (chaincode) na-arụ ọrụ nkwado ndị ọgbọ. Nke a na-eme ka nzuzo nke nkwekọrịta smart, n'ihi na Ọ bụghị ndị niile sonyere na-echekwa ya, kama ọ bụ naanị site n'ịkwado ndị ọgbọ.
  • Ịtụ kwesịrị ịrụ ọrụ ngwa ngwa. A na-ahụta nke a site n'eziokwu ahụ bụ na ịtụ naanị otu ngọngọ wee ziga ya na ndị otu ndị ndu ndị isi.
  • Ndị ọgbọ na-arụ ọrụ naanị na-echekwa blockchain - enwere ike inwe ọtụtụ n'ime ha ma ha anaghị achọ nnukwu ike na ọrụ ozugbo.

Nkọwa ndị ọzọ na ngwọta ụlọ nke Hyperledger Fabric na ihe kpatara o ji arụ ọrụ otu a ma ọ bụghị n'ụzọ ọzọ enwere ike ịchọta ebe a: Mmalite ihe owuwu ma ọ bụ ebe a: Akwa Hyperledger: Sistemụ arụmọrụ ekesara maka blockchains anabatara.

Yabụ, akwa Hyperledger bụ sistemụ zuru ụwa ọnụ nke ị nwere ike:

  • Mejuputa mgbagha azụmahịa aka ike na-eji usoro nkwekọrịta smart;
  • Dekọọ ma nata data sitere na nchekwa data blockchain na usoro JSON;
  • Nye ma nyochaa ohere API site na iji ikike Asambodo.

Ugbu a na anyị ghọtara ntakịrị banyere nkọwapụta Hyperledger Fabric, ka anyị mee ihe bara uru!

Na-ebuga blockchain

Ulationkpụzi nsogbu a

Ọrụ bụ iji mejuputa netwọk Citcoin na ọrụ ndị a: mepụta akaụntụ, nweta nguzozi, bulie akaụntụ gị, nyefee mkpụrụ ego site na otu akaụntụ gaa na nke ọzọ. Ka anyị see ihe nlereanya, nke anyị ga-emekwu n'ihu na a smart nkwekọrịta. Yabụ, anyị ga-enwe akaụntụ ndị ejiri aha mara ma nwee nguzozi, yana ndepụta akaụntụ. Akaụntụ na ndepụta akaụntụ bụ, n'ihe gbasara akụ Hyperledger Fabric. N'ihi ya, ha nwere akụkọ ihe mere eme na ọnọdụ dị ugbu a. Aga m anwa ise nke a nke ọma:

Blockchain: kedu PoC ka anyị ga-ewu?

Ọnụ ọgụgụ kachasị elu bụ ọnọdụ dị ugbu a, nke echekwara na nchekwa data "Ụwa steeti". N'okpuru ha bụ ọnụ ọgụgụ na-egosi akụkọ ihe mere eme nke echekwara na blockchain. Ọnọdụ akụ dị ugbu a gbanwere site na azụmahịa. Ihe bara uru na-agbanwe naanị n'ozuzu ya, ya mere, n'ihi azụmahịa ahụ, a na-emepụta ihe ọhụrụ, na uru ugbu a nke ihe onwunwe na-abanye n'akụkọ ihe mere eme.

IBM igwe ojii

Anyị na-emepụta akaụntụ na IBM igwe ojii. Iji jiri ikpo okwu blockchain, ọ ga-ebulirịrị ya ka ọ bụrụ Pay-As-You-Go. Usoro a nwere ike ọ gaghị adị ngwa ngwa, n'ihi na ... IBM na-arịọ ozi ndị ọzọ ma jiri aka nyochaa ya. N'okwu dị mma, enwere m ike ịsị na IBM nwere ezigbo ihe nkuzi nke na-enye gị ohere itinye Hyperledger Fabric na igwe ojii ha. Usoro akụkọ na ọmụmaatụ ndị a masịrị m:

Ndị a bụ nseta ihuenyo nke ikpo okwu IBM Blockchain. Nke a abụghị ntụziaka maka ịmepụta blockchain, kama ọ bụ naanị ngosipụta nke oke ọrụ ahụ. Yabụ, maka ebumnuche anyị, anyị na-eme otu nzukọ:

Blockchain: kedu PoC ka anyị ga-ewu?

Anyị na-emepụta ọnụ na ya: Orderer CA, Org1 CA, Orderer Peer:

Blockchain: kedu PoC ka anyị ga-ewu?

Anyị na-emepụta ndị ọrụ:

Blockchain: kedu PoC ka anyị ga-ewu?

Mepụta ọwa wee kpọọ ya citcoin:

Blockchain: kedu PoC ka anyị ga-ewu?

N'ezie ọwa bụ blockchain, ya mere ọ na-amalite na ngọngọ efu (Jenesis ngọngọ):

Blockchain: kedu PoC ka anyị ga-ewu?

Ịde nkwekọrịta Smart

/*
 * 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;

N'ezie, ihe niile kwesịrị ịpụta ebe a:

  • Enwere ọtụtụ ọrụ (AddAccount, GetAccounts, SendFrom, GetBalance, RefillBalance) nke mmemme ngosi ga-akpọ site na iji Hyperledger Fabric API.
  • Ọrụ SendFrom na RefillBalance na-emepụta ihe omume nke mmemme ngosi ga-enweta.
  • A na-akpọ ọrụ ozugbo mgbe a na-enweta nkwekọrịta smart ozugbo. N'ezie, a na-akpọ ya ọ bụghị naanị otu ugboro, mana mgbe ọ bụla ụdị nkwekọrịta smart na-agbanwe. Ya mere, ibido ndepụta na usoro efu bụ echiche ọjọọ, n'ihi na Ugbu a, mgbe anyị gbanwere nsụgharị nke nkwekọrịta smart, anyị ga-atụfu ndepụta dị ugbu a. Ma ọ dị mma, m na-amụ ihe).
  • Akaụntụ na ndepụta akaụntụ bụ nhazi data JSON. A na-eji JS maka njikwa data.
  • Ị nwere ike nweta uru bara uru ugbu a site na iji oku ọrụ getState, wee melite ya site na iji putState.
  • Mgbe ị na-eke Akaụntụ, a na-akpọ ọrụ AddAccount, nke a na-eme ntụnyere maka ọnụ ọgụgụ kacha elu nke akaụntụ na blockchain (maxAccounts = 5). Na ebe a enwere jamb (ị chọpụtala?), Nke na-eduga na mmụba na-adịghị agwụ agwụ na ọnụ ọgụgụ akaụntụ. Ekwesịrị izere mmejọ dị otú ahụ)

Na-esote, anyị na-ebunye nkwekọrịta smart n'ime ọwa ma tinye ya ozugbo:

Blockchain: kedu PoC ka anyị ga-ewu?

Ka anyị leba anya na azụmahịa maka ịwụnye Smart Contract:

Blockchain: kedu PoC ka anyị ga-ewu?

Ka anyị lelee nkọwa gbasara ọwa anyị:

Blockchain: kedu PoC ka anyị ga-ewu?

N'ihi ya, anyị na-enweta eserese na-esonụ nke netwọk blockchain na igwe ojii IBM. Eserese a gosikwara mmemme ngosi na-agba na igwe ojii Amazon na sava mebere (ihe gbasara ya na ngalaba na-esote):

Blockchain: kedu PoC ka anyị ga-ewu?

Ịmepụta GUI maka oku Hyperledger Fabric API

Hyperledger Fabric nwere API nke enwere ike iji:

  • Mepụta ọwa;
  • Njikọ ndị ọgbọ na ọwa;
  • Ntinye na ntinye nke nkwekọrịta smart na ọwa;
  • Ịkpọ azụmahịa;
  • Rịọ ozi na blockchain.

Mmepe ngwa

Na mmemme ngosi anyị, anyị ga-eji API naanị ịkpọ azụmahịa wee rịọ ozi, n'ihi na Anyị ejirila IBM blockchain ikpo okwu mezue usoro ndị fọdụrụ. Anyị na-eji nchịkọta teknụzụ ọkọlọtọ na-ede GUI: Express.js + Vue.js + Node.js. Ị nwere ike dee edemede dị iche maka otu esi amalite ịmepụta ngwa weebụ ọgbara ọhụrụ. N'ebe a, m ga-ahapụ njikọ nke usoro nkuzi nke kacha amasị m: Ngwa Weebụ Stack zuru ezu na-eji Vue.js & Express.js. Nsonaazụ bụ ngwa nkesa ahịa nke nwere ihe ngosi eserese amara nke ọma na ụdị Nhazi ihe nke Google. API REST n'etiti onye ahịa na ihe nkesa nwere ọtụtụ oku:

  • HyperledgerDemo/v1/init - ibido blockchain;
  • HyperledgerDemo/v1/accounts/list — nweta ndepụta nke akaụntụ niile;
  • HyperledgerDemo/v1/account?name=Bob&balance=100 — mepụta akaụntụ Bob;
  • HyperledgerDemo/v1/info?account=Bob — nweta ozi gbasara akaụntụ Bob;
  • HyperledgerDemo / v1 / azụmahịa? si = Bob&to = Alice&olu = 2 - nyefee ego abụọ site na Bob gaa Alice;
  • HyperledgerDemo/v1/kwụpụ - mechie njikọ na blockchain.

Nkọwa nke API nwere atụ agụnyere na Webụsaịtị onye ozi - mmemme ama ama maka ịnwale HTTP API.

Ngwa ngosi na igwe ojii Amazon

Ebugoro m ngwa na Amazon n'ihi na... IBM enwebeghị ike ịkwalite akaụntụ m wee kwe ka m mepụta sava mebere. Otu esi etinye cherry na ngalaba: www.citcoin.info. Aga m edebe ihe nkesa ahụ nwa oge, gbanyụọ ya, n'ihi na ... cents maka ịgbazinye ego na-adapụ, na mkpụrụ ego citcoin ka edepụtabeghị na mgbanwe ngwaahịa) M na-etinye nseta ihuenyo nke ngosi na isiokwu ka echiche nke ọrụ ahụ doo anya. Ngwa ngosi nwere ike:

  • Malite blockchain;
  • Mepụta Akaụntụ (mana ugbu a ị nweghị ike ịmepụta Akaụntụ ọhụrụ, n'ihi na abanyela ọnụọgụ akaụntụ akọwapụtara na nkwekọrịta smart na blockchain);
  • Nata ndepụta Akaụntụ;
  • Nyefee mkpụrụ ego citcoin n'etiti Alice, Bob na Alex;
  • Nata ihe omume (ma ugbu a ọ dịghị ụzọ isi gosipụta ihe omume, ya mere maka ịdị mfe interface na-ekwu na anaghị akwado ihe omume);
  • Ndekọ omume.

Nke mbụ anyị na-amalite blockchain:

Blockchain: kedu PoC ka anyị ga-ewu?

Ọzọ, anyị na-emepụta akaụntụ anyị, egbula oge na nguzozi:

Blockchain: kedu PoC ka anyị ga-ewu?

Anyị na-enweta ndepụta akaụntụ niile dị:

Blockchain: kedu PoC ka anyị ga-ewu?

Anyị na-ahọrọ onye na-ezipụ na onye nnata, ma nweta ego ha. Ọ bụrụ na onye zitere na onye nnata bụ otu, mgbe ahụ, akaụntụ ya ga-ejupụta:

Blockchain: kedu PoC ka anyị ga-ewu?

N'ime ndekọ ahụ anyị na-enyocha mmezu nke azụmahịa:

Blockchain: kedu PoC ka anyị ga-ewu?

N'ezie, nke ahụ bụ ihe niile na mmemme ngosi. N'okpuru ị nwere ike ịhụ azụmahịa anyị na blockchain:

Blockchain: kedu PoC ka anyị ga-ewu?

Na ndepụta azụmahịa izugbe:

Blockchain: kedu PoC ka anyị ga-ewu?

Na nke a, anyị emechaala nke ọma na mmejuputa PoC iji mepụta netwọk Citcoin. Kedu ihe ọzọ a ga-eme maka Citcoin ka ọ bụrụ netwọk zuru oke maka ịnyefe mkpụrụ ego? Obere obere:

  • N'oge ịmepụta akaụntụ, mejuputa ọgbọ nke igodo nzuzo / ọha. Ekwesịrị ịchekwa igodo nzuzo na onye ọrụ akaụntụ, igodo ọha ga-echekwa na blockchain.
  • Mee nnyefe ego nke ejiri igodo ọha, karịa aha, iji mata onye ọrụ.
  • Jiri igodo nzuzo zoo azụmahịa na-aga site na onye ọrụ gaa na nkesa.

nkwubi

Anyị etinyere netwọk Citcoin na ọrụ ndị a: tinye akaụntụ, nweta nguzozi, bulie akaụntụ gị, nyefee mkpụrụ ego site na otu akaụntụ gaa na nke ọzọ. Yabụ, kedu ihe ọ furu anyị iji wuo PoC?

  • Ịkwesịrị ịmụ blockchain n'ozuzu yana Hyperledger Fabric karịsịa;
  • Mụta iji IBM ma ọ bụ igwe ojii Amazon;
  • Mụta asụsụ mmemme JS na ụfọdụ usoro webụ;
  • Ọ bụrụ na ekwesịrị ịchekwa ụfọdụ data ọ bụghị na blockchain, mana na nchekwa data dị iche, mụta ijikọ, dịka ọmụmaatụ, na PostgreSQL;
  • N'ikpeazụ ma ọ dịghị ihe ọzọ - ị nweghị ike ibi n'ụwa nke oge a na-enweghị ihe ọmụma nke Linux!)

N'ezie, ọ bụghị sayensị rọketi, mana ị ga-arụsi ọrụ ike!

Isi mmalite na GitHub

Isi mmalite tinye na GitHub. Nkọwa dị nkenke nke ebe nchekwa ahụ:
Katalọgụ «server»- sava Node.js
Katalọgụ «ahịa»- Node.js ahịa
Katalọgụ «blockchain"(ụkpụrụ paramita na igodo, n'ezie, anaghị arụ ọrụ ma enyere ya naanị dịka ọmụmaatụ):

  • nkwekọrịta - smart nkwekọrịta isi koodu
  • obere akpa - igodo onye ọrụ maka iji Hyperledger Fabric API.
  • * .cds - ụdị nkwekọrịta smart achịkọtara
  • *.json faịlụ - ihe atụ nke faịlụ nhazi maka iji Hyperledger Fabric API

Ọ bụ naanị mmalite!

isi: www.habr.com

Tinye a comment