Blockchain: waa maxay PoC-ga aan dhisno?

Indhahaagu way baqayaan gacmahaaguna way cuncunayaan!

Maqaaladii hore, waxaan la macaamilnay tignoolajiyada lagu dhisayo blockchain (Maxaan dhisi karnaa blockchain?) iyo kiisaska la fulin karo iyadoo la kaashanayo (Waa maxay sababta aan u dhisno kiis?). Waa waqtigii aad gacmahaaga ku shaqayn lahayd! Si loo hirgeliyo duuliyayaasha iyo PoC (Caddaynta Fikradda), waxaan doorbidayaa inaan isticmaalo daruuraha, sababtoo ah ... waxaa laga heli karaa meel kasta oo aduunka ka mid ah, inta badan, looma baahna in waqti lagu lumiyo rakibaadda adag ee deegaanka, sababtoo ah Waxaa jira habayn hore loo diyaariyey. Haddaba, aan samayno wax fudud, tusaale ahaan, shabakad loogu talagalay wareejinta qadaadiicda u dhexeeya ka qaybgalayaasha oo aynu si xishood leh ugu yeedho Seeraar. Taas awgeed waxaan u isticmaali doonaa daruuraha IBM iyo kuwa caalamiga ah ee blockchain Hyperledger Fabric. Marka hore, aan ogaano sababta Hyperledger Fabric loogu yeero xannibaad caalami ah?

Blockchain: waa maxay PoC-ga aan dhisno?

Dharka Hyperledger - blockchain caalami ah

Guud ahaan, nidaamka macluumaadka caalamiga ah waa:

  • Qayb ka mid ah server-yada iyo udub-dhexaadka software ee fuliya macquulnimada ganacsiga;
  • Interfaces isdhexgalka nidaamka;
  • Aaladaha loogu talagalay diiwaangelinta, xaqiijinta iyo oggolaanshaha aaladaha/dadka;
  • Kaydinta xogta shaqada iyo xogta kaydinta:

Blockchain: waa maxay PoC-ga aan dhisno?

Nooca rasmiga ah ee dharka Hyperledger waa laga akhriyi karaa goobta, iyo marka la soo koobo, Hyperledger Fabric waa madal il furan oo kuu ogolaanaysa inaad dhisto blockchain gaar ah oo aad fuliso qandaraasyo caqli gal ah oo ku qoran luqadaha barnaamijyada JS iyo Go. Aynu si faahfaahsan u eegno naqshadda dharka Hyperledger oo aan hubinno in tani ay tahay nidaam caalami ah oo leh oo kaliya gaar ah kaydinta iyo duubista xogta. Waxyaabaha gaarka ah ayaa ah in xogta, sida dhammaan xannibaadaha, lagu keydiyo baloogyada lagu dhejiyo xannibaadda kaliya haddii kaqeybgalayaashu ay gaaraan heshiis iyo ka dib duubista xogta si aamusnaan ah looma sixi karo ama lama tirtiri karo.

Dhismaha Dharka Sarreysa

Jaantusku waxa uu tusinayaa qaab dhismeedka Dharka Hyperledger:

Blockchain: waa maxay PoC-ga aan dhisno?

Ururada - ururadu waxay ka kooban yihiin facooda, i.e. blockchain waxay u jirtaa taageerada ururada. Ururo kala duwan ayaa qayb ka noqon kara isla kanaalka.

Channel - qaab-dhismeed macquul ah oo mideeya facooda kooxo, i.e. blockchain waa la cayimay. Dharka Hyperledger wuxuu isku mar ka shaqeyn karaa blockchain badan oo leh caqli-gal ganacsi oo kala duwan.

Bixiyaha Adeegyada Xubinnimada (MSP) waa CA (Maamulka Shahaadada) ee soo saarista aqoonsiga iyo ku meelaynta doorarka. Si aad u abuurto noode, waxaad u baahan tahay inaad la falgasho MSP.

qanjidhada asaaga - Xaqiiji macaamil ganacsi, kaydi blockchain, fuliya qandaraasyo caqli gal ah oo la falgalka codsiyada. Asxaabtu waxay leeyihiin aqoonsi (shahaadad dijital ah), oo ay bixiso MSP. Si ka duwan shabakadda Bitcoin ama Etherium, halkaas oo dhammaan qanjidhada ay leeyihiin xuquuq siman, qanjidhada Dharka Hyperledger waxay ciyaaraan door kala duwan:

  • Faca malaha faciisa taageersan (EP) oo fuliyaan qandaraasyo caqli-gal ah.
  • asaagga u heellan (CP) - kaliya ku keydi xogta blockchain oo cusboonaysii “dawladda adduunka”.
  • Barroosin Peer (AP) - Haddii ururo dhowr ah ay ka qaybqaataan xannibaadda, markaa asxaabta barroosinka ah ayaa loo isticmaalaa isgaarsiinta dhexdooda. Urur kastaa waa inuu lahaadaa hal ama in ka badan oo asaag ah. Isticmaalka AP, fac kasta oo ka tirsan ururka wuxuu heli karaa macluumaadka ku saabsan dhammaan asxaabta kale ee ururada kale. Loo isticmaalo in xogta APs la mideeyo borotokoolka xanta.
  • Hogaamiyaha Peer - Haddii ururku leeyahay dhowr asaagood, markaa kaliya hoggaamiyaha asaagga ayaa heli doona xannibaadyo adeegga Dalbashada oo siin doona asxaabta inteeda kale. Hogaamiyaha waxaa loo cayimi karaa si joogto ah ama si firfircooni ah ayey u dooran karaan asxaabta ururka. Hab-maamuuska xanta waxaa sidoo kale loo adeegsadaa in la isku waafajiyo macluumaadka ku saabsan madaxda.

Hantida - hay'ado qiimo leh oo ku kaydsan blockchain. Si gaar ah, tani waa xogta qiimaha muhiimka ah ee qaabka JSON. Waa xogtan waxa lagu duubay Blockchain. Waxay leeyihiin taariikh, kaas oo lagu kaydiyo blockchain, iyo xaalad hadda, kaas oo lagu kaydiyo xogta "Dawladda Adduunka". Qaab dhismeedka xogta waxaa loo buuxiyaa si sabab la'aan ah iyadoo ku xiran hawlaha ganacsiga. Ma jiraan goobo loo baahan yahay, talada kaliya ayaa ah in hantidu ay lahaato milkiile oo ay qiimo leedahay.

Ledger - waxay ka kooban tahay Blockchain iyo xogta gobolka Word, kaas oo kaydiya xaaladda hantida hadda jirta. Dawladdu waxay isticmaashaa LevelDB ama CouchDB.

Qandaraaska casriga ah - iyadoo la adeegsanayo qandaraasyo caqli-gal ah, caqli-galnimada ganacsiga ee nidaamka waa la fuliyay. Dharka Hyperledger, qandaraasyada caqliga leh waxaa loo yaqaan chaincode. Isticmaalka silsilada koodhka, hantida iyo wax kala iibsiga iyaga ayaa la cayimay. Dhanka farsamada, qandaraasyada smart waa qaybo software oo lagu hirgeliyay luqadaha barnaamijyada JS ama Go.

Siyaasadda taageerada - Syncode kasta, waxaad dejin kartaa siyaasad ku saabsan inta xaqiijin ee macaamil ganacsi waa in laga filayaa iyo cidda. Haddii siyaasadda aan la dejin, ka dib default waa: "wax kala iibsiga waa in ay xaqiijisaa xubin kasta oo ka mid ah urur kasta oo ka mid ah kanaalka." Tusaalooyinka siyaasadaha:

  • Wax kala iibsiga waa in uu oggolaadaa maamule kasta oo ururka;
  • Waa in uu xaqiijiyaa xubin kasta ama macmiilka ururka;
  • Waa in uu xaqiijiyaa urur kasta oo asaageed ah.

Adeeg dalbashada - waxay xirxirtaa wax kala iibsiga blocks waxayna u dirtaa facooda kanaalka. Waxay dammaanad qaadaysaa gaarsiinta fariimaha dhammaan facooda shabakadda. Loo isticmaalo nidaamyada warshadaha Kafka fariinta, horumarinta iyo tijaabinta Solo.

CallFlow

Blockchain: waa maxay PoC-ga aan dhisno?

  • Codsigu wuxuu la xidhiidhaa Dharka Hyperledger isagoo isticmaalaya Go, Node.js ama Java SDK;
  • Macmiilku wuxuu abuuraa macaamil ganacsi tx wuxuuna u diraa asxaabtiisa taageeraya;
  • Peer-ku waxa uu xaqiijiyaa saxeexa macmiilka, waxa uu dhamaystiraa wax kala iibsiga,waxana uu saxeexa ansixinta dib ugu soo diraa macmiilka. Chaincode waxaa lagu fuliyaa kaliya asxaabta taageersan, natiijada fulinteedana waxaa loo diraa dhammaan asxaabta. Algorithm-ka shaqada waxa loo yaqaan PBFT (Practical Byzantine Fault Tolerant) la isku raacsan yahay. Ka duwan yahay classic BFT Xaqiiqda ah in farriinta la diro iyo xaqiijinta lagama filayo dhammaan ka qaybgalayaasha, laakiin kaliya qayb gaar ah;
  • Ka dib marka macmiilku helo tirada jawaabaha ee u dhiganta siyaasadda ansixinta, wuxuu u diraa macaamilka adeegga Dalbashada;
  • Adeegga dalbashada wuxuu abuuraa baloog wuxuuna u diraa dhammaan facooda dadaalka ah. Adeegga dalbashada wuxuu xaqiijiyaa duubista isku xigxiga ee blocks, taasoo meesha ka saaraysa waxa loogu yeero fargeeto ledgerka (eeg qaybta "fargeetooyinka");
  • Asxaabtu waxay helayaan xannibaad, hubi siyaasadda ansixinta mar labaad, ku qor xannibaadda blockchain oo beddel gobolka "Dawladda Adduunka" DB.

Kuwaas. Tani waxay keenaysaa qaybinta doorarka u dhexeeya qanjidhada. Tani waxay hubinaysaa in blockchain uu yahay mid la miisaaman karo oo sugan:

  • Qandaraasyada smart (chaincode) waxay qabtaan asxaab taageeraya. Tani waxay xaqiijinaysaa sirta qandaraasyada smart, sababtoo ah laguma kaydiyo dhammaan ka qaybgalayaasha, laakiin waa in la taageero facooda.
  • Dalbashada waa inay si dhakhso leh u shaqeyso. Tan waxaa lagu hubiyaa xaqiiqda ah in Dalbashada kaliya ay sameyso block oo ay u dirto go'an ee asxaabta hoggaamiyeyaasha.
  • Saaxiibada isku dhafka ah waxay kaydiyaan oo kaliya blockchain - waxaa jiri kara qaar badan oo iyaga ka mid ah uma baahna awood badan iyo hawlgal degdeg ah.

Faahfaahin dheeraad ah oo ku saabsan xalalka dhismaha ee Hyperledger Fabric iyo sababta ay sidan u shaqeyso oo aan si kale loo heli karin halkan: Asalkii dhismaha ama halkan: Dharka Hyperledger: Nidaam Hawleed Qaybsan oo loogu talagalay Blockchains La Ogolaaday.

Markaa, Dharka Hyperledger waa nidaam run ahaantii caalami ah oo aad awooddo:

  • Hirgelinta caqli-gal ganacsi oo aan sabab lahayn adoo isticmaalaya habka qandaraaska ee caqliga leh;
  • Diiwaangeli oo ka hel xogta kaydka kaydka ee blockchain qaab JSON ah;
  • Sii oo xaqiiji gelitaanka API adoo isticmaalaya Maamulka Shahaadada.

Hadda oo aan wax yar ka fahanno waxyaabaha gaarka ah ee Fabric Hyperledger, aan ugu dambeyntii sameyno wax faa'iido leh!

Dajinta blockchain

Abuurista dhibaatada

Hawshu waa in la hirgeliyo shabakadda Citcoin oo leh hawlahan soo socda: samee xisaab, hel dheelitir, kor u qaad koontadaada, u wareeji qadaadiicda hal akoon oo kale. Aynu sawirno qaabka shayga, kaas oo aan ku sii hirgelin doono qandaraas caqli-gal ah. Markaa, waxa aanu yeelan doonaa xisaabo magacyo lagu garto oo ay ku jiraan hadhaaga, iyo liiska xisaabaadka. Xisaabaadka iyo liiska xisaabaadka ayaa ah, marka la eego hantida Dharka Sarreysa. Sidaas awgeed, waxay leeyihiin taariikh iyo xaalad hadda jirta. Waxaan isku dayi doonaa inaan si cad u sawiro:

Blockchain: waa maxay PoC-ga aan dhisno?

Tirooyinka ugu sarreeya waa xaaladda hadda jirta, taas oo lagu kaydiyo xogta "Dawladda Adduunka". Hoos waxaa ku yaal tirooyinka muujinaya taariikhda lagu kaydiyo blockchain. Xaaladda hantida hadda jirta waxa lagu beddelaa wax kala iibsiga. Hantidu waxay isbedeshaa oo kaliya guud ahaan, sidaas darteed natiijada macaamilka, shay cusub ayaa la abuuray, qiimaha hadda ee hantida ayaa galaya taariikhda.

IBM Cloud

Waxaan ku abuurnaa akoon IBM daruur. Si loo isticmaalo barta blockchain, waa in loo cusboonaysiiyaa Pay-As-You-Go. Habkani ma noqon karo mid degdeg ah, sababtoo ah... IBM waxay codsatay macluumaad dheeri ah oo ay gacanta ku xaqiijisaa. Qoraal wanaagsan, waxaan dhihi karaa IBM waxay leedahay qalab tababar oo wanaagsan oo kuu ogolaanaya inaad geyso Hyperledger Fabric daruurtooda. Waxaan jeclaystay taxanaha maqaallada iyo tusaalooyinka soo socda:

Kuwa soo socda waa shaashadaha IBM Blockchain platform. Tani ma aha tilmaamo ku saabsan sida loo abuuro blockchain, laakiin si fudud muujinta baaxadda hawsha. Markaa, ujeeddooyinkeenna daraaddood, waxaannu u samaynay hal Urur:

Blockchain: waa maxay PoC-ga aan dhisno?

Waxaan ku abuurnaa noodhadhka dhexdiisa: Dalabka CA, Org1 CA, Dalbashada Peer:

Blockchain: waa maxay PoC-ga aan dhisno?

Waxaan abuurnaa isticmaalayaasha:

Blockchain: waa maxay PoC-ga aan dhisno?

Samee kanaal oo wac citcoin:

Blockchain: waa maxay PoC-ga aan dhisno?

Asal ahaan kanaalka waa block, marka wuxuu ku bilaabmaa block eber (Block Genesis):

Blockchain: waa maxay PoC-ga aan dhisno?

Qoritaanka Qandaraaska Casriga ah

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

Dareen ahaan, wax walba waa inay ku cad yihiin halkan:

  • Waxaa jira dhowr hawlood (AddAccount, GetAccounts, SendFrom, GetBalance, RefillBalance) oo barnaamijka demo uu wici doono iyadoo la adeegsanayo Hyperledger Fabric API.
  • Howlaha SendFrom iyo Dib-u-buufiska waxay dhaliyaan Dhacdooyin uu barnaamijka demo heli doono.
  • Shaqada degdega ah waxaa la yiraahdaa hal mar marka qandaraas caqli leh la degdego. Dhab ahaantii, looma yeedho hal mar, laakiin mar kasta oo nooca qandaraaska smart is beddelo. Sidaa darteed, bilawga liis leh hannaan madhan waa fikrad xun, sababtoo ah Hadda, markaan bedelno nooca qandaraaska smart, waxaan lumin doonaa liiska hadda jira. Laakiin waa caadi, kaliya waan baranayaa).
  • Xisaabaadka iyo liiska xisaabaadka ayaa ah qaabdhismeedka xogta JSON. JS waxaa loo isticmaalaa wax-ka-beddelka xogta.
  • Waxaad ku heli kartaa qiimaha hadda ee hantida adiga oo isticmaalaya wicitaanka shaqada ee getState, oo aad cusboonaysiiso addoo isticmaalaya putState.
  • Marka la abuurayo Koontada, shaqada AddAccount ayaa loo yaqaan, taas oo isbarbardhigga lagu sameeyay tirada ugu badan ee xisaabaadka blockchain (maxAccounts = 5). Oo halkan waxaa jira jamb (ma aragtay?), Taas oo horseedaysa koror aan dhammaad lahayn oo tirada xisaabaadka. Qaladaadkan oo kale waa in laga fogaadaa)

Marka xigta, waxaanu ku dhejineynaa qandaraaska casriga ah ee Channel-ka oo aan ku dhejineyno:

Blockchain: waa maxay PoC-ga aan dhisno?

Aynu eegno macaamilka ku rakibida qandaraaska Smart:

Blockchain: waa maxay PoC-ga aan dhisno?

Aan eegno faahfaahinta ku saabsan Channelkeena:

Blockchain: waa maxay PoC-ga aan dhisno?

Natiijo ahaan, waxaan helnaa jaantuska soo socda ee shabakada blockchain ee daruuraha IBM. Jaantusku wuxuu sidoo kale muujinayaa barnaamijka demo ee ku dhex socda daruurta Amazon ee server-ka farsamada ah (wax badan oo ku saabsan qaybta xigta):

Blockchain: waa maxay PoC-ga aan dhisno?

Abuuritaanka GUI ee wicitaanada Fabric API Hyperledger

Dharka Hyperledger wuxuu leeyahay API kaas oo loo isticmaali karo:

  • Samee kanaalka;
  • Isku xirka asxaabta kanaalka;
  • Ku rakibida iyo dejinta qandaraasyada caqliga leh ee kanaalka;
  • Wicida macaamil ganacsi;
  • Codso macluumaadka ku saabsan blockchain.

Horumarinta codsiga

Barnaamijkeena demo waxaan u isticmaali doonaa API kaliya si aan u wacno wax kala iibsiga oo aan u codsano macluumaadka, sababtoo ah Waxaan horey u dhameeynay tillaabooyinka haray anagoo adeegsanayna IBM blockchain platform. Waxaan ku qornaa GUI anagoo adeegsanayna xirmo tignoolajiyada caadiga ah: Express.js + Vue.js + Node.js. Waxaad qori kartaa maqaal gaar ah oo ku saabsan sida loo bilaabo abuurista codsiyada shabakadaha casriga ah. Halkan waxaan kaga tagayaa linkiga muxaadarooyinka taxanaha ah ee aan aad u jeclaa: App-ka Shabakadda Buuxa oo la isticmaalayo Vue.js & Express.js. Natiijadu waa arjiga macmiilka-server oo leh is-dhexgal garaafeed la yaqaan oo ku jira qaabka Nakhshadda Qalabka Google. API REST ee u dhexeeya macmiilka iyo server-ka wuxuu ka kooban yahay dhowr wicitaan:

  • HyperledgerDemo/v1/init - bilow blockchain;
  • HyperledgerDemo/v1/accounts/liiska - hel liiska dhammaan xisaabaadka;
  • HyperledgerDemo/v1/account?name=Bob&balance=100 — samee xisaab Bob;
  • HyperledgerDemo/v1/info?account=Bob — hel macluumaadka ku saabsan akoonka Bob;
  • HyperledgerDemo/v1/transaction?from=Bob&to=Alice&volume=2 - laba qadaadiicda Bob u wareeji Alice;
  • HyperledgerDemo/v1/goynta - xidh xidhiidhka blockchain.

Sharaxaada API-ga oo ay ku jiraan tusaalayaal Mareegta Boostada - barnaamij caan ah oo lagu tijaabiyo HTTP API.

Codsiga demo ee daruuraha Amazon

Waxaan codsiga u soo galiyay Amazon sababtoo ah... IBM wali ma awoodin in ay cusboonaysiiso akoonkayga oo ay ii ogolaato in aan sameeyo server-yada casriga ah. Sida cherry loogu daro goobta: www.citcoin.info. In muddo ah ayaan Server-ka shid doonaa, ka dibna damin doonaa, sababtoo ah... santiyada kirada ah ayaa soo qulqulaya, iyo qadaadiicda citcoin aan weli ku jirin liiska sarrifka saamiyada) Waxaan ku darayaa shaashadda sawirada ee maqaalka si caqli-galnimada shaqadu u caddahay. Codsiga demo wuxuu karaa:

  • Bilow blockchain;
  • Abuur Koonto (laakin hadda ma abuuri kartid xisaab cusub, sababtoo ah tirada ugu badan ee xisaabaadka lagu qeexay qandaraaska smart ayaa lagu gaaray blockchain);
  • Hesho liiska Xisaabaadka;
  • Ku wareeji qadaadiicda citcoin inta u dhaxaysa Alice, Bob iyo Alex;
  • Hel dhacdooyinka (laakiin hadda ma jirto hab lagu muujiyo dhacdooyinka, markaa si fudud, interface ayaa sheegaysa in dhacdooyinka aan la taageerin);
  • Log falalka

Marka hore waxaan bilownay blockchain:

Blockchain: waa maxay PoC-ga aan dhisno?

Marka xigta, waxaan abuurnaa akoonkeena, ha ku lumin waqtiga dheelitirka:

Blockchain: waa maxay PoC-ga aan dhisno?

Waxaan helnaa liiska dhammaan xisaabaadka la heli karo:

Blockchain: waa maxay PoC-ga aan dhisno?

Waxaan dooranaa soo diraha iyo qaataha, waxaana helnaa baaqigooda. Haddii diraha iyo qaataha ay isku mid yihiin, markaas xisaabtiisa ayaa la buuxin doonaa:

Blockchain: waa maxay PoC-ga aan dhisno?

Diiwaanka waxaan kula soconaa fulinta wax kala iibsiga:

Blockchain: waa maxay PoC-ga aan dhisno?

Dhab ahaantii, taasi waa dhammaan barnaamijka demo. Hoos waxaad ku arki kartaa macaamilkayaga blockchain:

Blockchain: waa maxay PoC-ga aan dhisno?

Iyo liiska guud ee wax kala iibsiga:

Blockchain: waa maxay PoC-ga aan dhisno?

Tani, waxaan si guul leh u dhamaystirnay hirgelinta PoC si loo abuuro shabakadda Citcoin. Maxaa kale oo loo baahan yahay in loo sameeyo Citcoin si ay u noqoto shabakad dhamaystiran oo loogu talagalay wareejinta qadaadiicda? Aad u yar:

  • Marxaladda abuurista akoonnada, hirgeli abuurista furaha gaarka ah / dadweynaha. Furaha gaarka ah waa in lagu kaydiyaa isticmaalaha akoontada, furaha dadweynaha waa in lagu kaydiyaa blockchain.
  • Samee wareejin qadaadiic ah kaas oo furaha guud, halkii magac loo isticmaali lahaa si loo aqoonsado isticmaalaha.
  • Siri macaamil ganacsi oo ka socda isticmaalaha una socda serverka furihiisa gaarka ah.

gunaanad

Waxaan hirgelinay shabakadda Citcoin oo leh hawlahan soo socda: ku dar koonto, hel dheelitir, kor u qaad koontadaada, u wareejinta qadaadiicda hal akoon oo kale. Haddaba, maxaa nagu kacay inaan dhisno PoC?

  • Waxaad u baahan tahay inaad barato blockchain guud ahaan iyo gaar ahaan Dharka Hyperledger;
  • Baro isticmaalka IBM ama daruuraha Amazon;
  • Baro luqadda barnaamijka JS iyo qaab-dhismeedka shabakadda;
  • Haddii xogta qaar loo baahan yahay in aan lagu kaydin blockchain, laakiin ku jira kayd gaar ah, ka dibna baro sida loo dhexgalo, tusaale ahaan, PostgreSQL;
  • Ugu dambayn, laakiin ugu yaraan - kuma noolaan kartid adduunka casriga ah adigoon aqoon u lahayn Linux!)

Dabcan, maaha sayniska gantaalaha, laakiin waa inaad si adag u shaqeysaa!

Ilaha GitHub

Ilaha saaray GitHub. Sharaxaad kooban oo ku saabsan kaydka:
Buuggaag "server» - Node.js server
Buuggaag "macmiilka» - Node.js macmiilka
Buuggaag "blockchain"(qiyamka halbeegga iyo furayaasha, dabcan, ma shaqeeyaan waxaana la bixiyaa tusaale ahaan):

  • contract — smart contract source code
  • jeebka - furayaasha isticmaalaha ee isticmaalka Hyperledger Fabric API.
  • *.cds - noocyada qandaraasyada smart oo la soo ururiyey
  • * .json faylasha - tusaaleyaal faylasha habaynta ee isticmaalka Hyperledger Fabric API

Waa bilow uun!

Source: www.habr.com

Add a comment