Blockchain: o le a le PoC e tatau ona tatou fausia?

Ua fefe ou mata ma ua ma'i ou lima!

I tala talu ai, na matou feagai ai ma tekinolosi o loʻo fausia ai poloka poloka (O le a le mea e tatau ona tatou fausia se poloka poloka?) ma mataupu e mafai ona faʻatinoina ma la latou fesoasoani (Aisea e tatau ai ona tatou fausia se mataupu?). Ua oo i le taimi e galue ai ma ou lima! Ina ia faʻatinoina pailate ma PoC (Faʻamaoniga o le Manatu), ou te manaʻo e faʻaoga ao, aua ... e mafai ona maua mai soʻo se mea i le lalolagi ma, masani, e leai se manaʻoga e faʻaumatia le taimi i le faʻapipiʻiina o le siosiomaga, aua O lo'o iai fa'atonuga. O lea la, ia tatou faia se mea faigofie, mo se faʻataʻitaʻiga, o se fesoʻotaʻiga mo le fesiitaiga o tupe i le va o tagata auai ma taʻu tauagafau Bitcoin. Mo lenei mea o le a matou faʻaogaina le IBM cloud ma le lautele blockchain Hyperledger Fabric. Muamua, seʻi o tatou vaʻai pe aisea ua taʻua ai le Hyperledger Fabric o se poloka poloka lautele?

Blockchain: o le a le PoC e tatau ona tatou fausia?

Hyperledger Fabric - o se poloka poloka lautele

I se tulaga lautele, o se faiga faʻamatalaga lautele e:

  • Se seti o 'auʻaunaga ma se polokalama faakomepiuta e faʻatino faʻamatalaga pisinisi;
  • Interfaces mo fegalegaleaiga ma le faiga;
  • Meafaigaluega mo le resitalaina, faʻamaonia ma le faʻatagaina o masini / tagata;
  • Fa'amaumauga e teu ai fa'amaumauga fa'agaioiga ma fa'amaumauga:

Blockchain: o le a le PoC e tatau ona tatou fausia?

O le fa'amatalaga aloaia o le Hyperledger Fabric e mafai ona faitau i saite, ma i se faapuupuuga, o le Hyperledger Fabric o se faʻasalalauga tatala lea e mafai ai ona e fausia ni poloka poloka tumaoti ma faʻataunuʻuina konekarate atamai faʻapitoa e tusia i le JS ma le Go programming language. Sei o tatou vaʻavaʻai auiliili ile fausaga ole Hyperledger Fabric ma ia mautinoa o se faiga faʻapitoa lea e naʻo faʻamatalaga patino mo le teuina ma le pueina o faʻamaumauga. O le tulaga faʻapitoa o faʻamaumauga, e pei o poloka poloka uma, o loʻo teuina i totonu o poloka e tuʻu i luga o le poloka poloka pe a na o le au auai e ausia se maliega ma a maeʻa ona puʻeina faʻamaumauga e le mafai ona faʻasaʻo lemu pe tape.

Hyperledger Fabric Architecture

O le ata o loʻo faʻaalia ai le fausaga o le Hyperledger Fabric:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Faalapotopotoga - faʻalapotopotoga o loʻo i ai tupulaga, i.e. poloka poloka o loʻo i ai ona o le lagolago a faʻalapotopotoga. O faʻalapotopotoga eseese e mafai ona avea ma vaega o le ala tutusa.

alāvai - o se fausaga talafeagai e tuufaatasia ai tupulaga i vaega, i.e. o le poloka poloka ua faʻamaonia. E mafai e le Hyperledger Fabric ona fa'agasolo i le taimi e tasi le tele o poloka poloka fa'atasi ai ma manatu fa'apisinisi eseese.

Tu'uina atu Au'aunaga Fa'aui (MSP) ose CA (Pulega Fa'amaonia) mo le tu'uina atu o fa'asinomaga ma le tofiaina o matafaioi. Ina ia faia se node, e tatau ona e fegalegaleai ma le MSP.

Nodes a tupulaga - faʻamaonia fefaʻatauaiga, teuina le poloka poloka, faʻatino konekarate atamai ma fegalegaleai ma talosaga. E iai le fa'asinomaga a tupulaga (pepa numera), lea e tu'uina atu e le MSP. E le pei o le Bitcoin poʻo le Etherium network, lea e tutusa uma ai aia tatau, i Hyperledger Fabric nodes e eseese matafaioi:

  • Masalo o tupulaga lagolago a tupulaga (EP) ma faatino konekarate atamai.
  • Tautino a tupulaga (CP) - naʻo le faʻasaoina o faʻamatalaga i totonu o poloka poloka ma faʻafouina le "lalolagi o le lalolagi".
  • Taula Peer (AP) - afai e tele faʻalapotopotoga o loʻo auai i le poloka poloka, ona faʻaogaina lea o tupulaga taula mo fesoʻotaʻiga i le va oi latou. E tatau i fa'alapotopotoga uma ona iai se tasi pe sili atu fo'i fa'agatama taula. I le fa'aaogaina o le AP, so'o se tupulaga i totonu o se fa'alapotopotoga e mafai ona maua fa'amatalaga e uiga i tupulaga uma i isi fa'alapotopotoga. Fa'aoga e fa'amaopoopo fa'amatalaga i le va o AP faiga faitatala.
  • Ta'ita'i Peer - afai o se faʻalapotopotoga e tele a latou paaga, ona naʻo le taʻitaʻi o le tupulaga o le a mauaina poloka mai le Ordering service ma tuʻuina atu i isi vaega. O le ta'ita'i e mafai ona fa'ailoa fa'amautu pe filifilia fa'amalosi e tupulaga i le fa'alapotopotoga. O lo'o fa'aoga fo'i le fa'atalatala e fa'amaopoopo fa'amatalaga e uiga i ta'ita'i.

aseta - fa'alapotopotoga e iai le taua ma o lo'o teuina ile poloka poloka. Aemaise lava, o faʻamaumauga autu-taua lea i le JSON format. O faʻamaumauga nei o loʻo faʻamauina i le Blockchain. E i ai a latou talaʻaga, o loʻo teuina i totonu o poloka poloka, ma se tulaga o loʻo i ai nei, o loʻo teuina i totonu o le "World state" database. O faʻamaumauga faʻamaumauga e faʻatumu faʻapitoa e faʻatatau i galuega faʻapisinisi. E leai ni fanua mana'omia, na'o le pau lava le fautuaga o aseta e tatau ona i ai se tagata e ona ma taua.

Ledger - e aofia ai le Blockchain ma le Word state database, lea e teu ai le tulaga o loʻo iai nei. Fa'aaoga e le setete o le lalolagi le LevelDB po'o le CouchDB.

Konekalate atamai - faʻaaogaina konekarate atamai, o loʻo faʻatinoina le faʻatautaia pisinisi o le faiga. I le Hyperledger Fabric, o konekarate atamai e taʻua o le code code. O le fa'aogaina o le chaincode, o aseta ma fefa'ataua'iga i luga oi latou o lo'o fa'amaonia. I faaupuga faʻapitoa, o konekarate atamai o polokalame faʻapipiʻi faʻatinoina i le JS poʻo le Go polokalame gagana.

Faiga fa'amaonia - mo filifili filifili taitasi, e mafai ona e setiina se faiga faavae i luga o le tele o faʻamaoniga mo se fefaʻatauaiga e tatau ona faʻamoemoeina ma mai ai. Afai e le o setiina le faiga faavae, o le faaletonu o le: "o le fefaʻatauaiga e tatau ona faʻamaonia e soʻo se sui o soʻo se faʻalapotopotoga i totonu o le auala." Fa'ata'ita'iga o faiga fa'avae:

  • O le fefaʻatauaiga e tatau ona faʻamaonia e soʻo se pule o le faʻalapotopotoga;
  • E tatau ona faʻamaonia e soʻo se sui poʻo se tagata o tausia o le faʻalapotopotoga;
  • E tatau ona fa'amaonia e so'o se fa'alapotopotoga a tupulaga.

Auaunaga oka - fa'apipi'i fefa'ataua'iga i poloka ma tu'u atu i tupulaga i le alalaupapa. Fa'amaonia le tu'uina atu o fe'au i tupulaga uma i luga ole feso'otaiga. Fa'aaogaina mo faiga fa'apisinisi Kafka faife'au faife'au, mo le atinaʻe ma suʻega solo.

CallFlow

Blockchain: o le a le PoC e tatau ona tatou fausia?

  • O le talosaga e fesoʻotaʻi ma Hyperledger Fabric e faʻaaoga ai Go, Node.js poʻo Java SDK;
  • E faia e le kalani se fefa'ataua'iga tx ma tu'uina atu i le fa'amaonia o tupulaga;
  • E fa'amaonia e le Peer le saini a le kalani, fa'auma le fefa'atauaiga, ma toe lafo atu le saini fa'amaonia i le kalani. O le Chaincode e fa'atinoina na'o le paaga fa'amaonia, ma o le fa'ai'uga o lona fa'ataunu'uina e lafo atu i tupulaga uma. O lenei algorithm o galuega e taʻua o le PBFT (Practical Byzantine Fault Tolerant) consensus. E ese mai masani BFT o le mea moni o le feʻau e auina atu ma faʻamaoniga e le o faʻamoemoeina mai tagata auai uma, ae naʻo se seti faapitoa;
  • A mae'a ona maua e le kalani le numera o tali e fetaui ma le tulafono fa'amaonia, na te tu'uina atu le fefa'ataua'iga i le tautua oka;
  • O le auaunaga o le Ordering e fa'atupuina ai se poloka ma tu'uina atu i tagata uma o lo'o galulue fa'atasi. O le fa'atonuina o auaunaga e fa'amautinoa ai le fa'amauina fa'asologa o poloka, lea e fa'aumatia ai le mea e ta'ua o le tui tusi (va'ai vaega "Forks");
  • E maua e le tupulaga se poloka, toe siaki le tulafono faʻamaonia, tusi le poloka i le poloka poloka ma suia le setete i le "World state" DB.

O na. O le mea lea e maua ai le vaevaega o matafaioi i le va o nodes. Ole mea lea e faʻamautinoa ai ole poloka poloka e mafai ona faʻaogaina ma malupuipuia:

  • O konekarate atamai (chaincode) e fa'atino le fa'amaoniaina o tupulaga. E fa'amautinoaina le le faalauaiteleina o konekarate atamai, aua e le o teuina e tagata auai uma, ae na o le lagolagoina o uo.
  • E tatau ona vave galue le oka. E fa'amautinoaina i le mea moni e na'o le fa'atonuina o se poloka ma tu'uina atu i se seti mautu o tupulaga ta'ita'i.
  • O le tuʻuina atu o tupulaga e naʻo le teuina o poloka poloka - e mafai ona tele ma latou te le manaʻomia le tele o le mana ma le faʻagaioiga vave.

O nisi faʻamatalaga i fofo faʻataʻitaʻiga o Hyperledger Fabric ma pe aisea e aoga ai i lenei auala ae le o se isi itu e mafai ona maua iinei: Fuafuaga Fa'ata pe iinei: Hyperledger Fabric: O se Faʻasalalauga Faʻasalalauga mo Blockchains Faʻatagaina.

O lea la, o le Hyperledger Fabric o se faiga fa'ale-malo moni e mafai ai ona e:

  • Fa'atino faiga fa'atauva'a fa'apisinisi e fa'aaoga ai le masini fa'akonekarate atamai;
  • Faʻamau ma maua faʻamatalaga mai le faʻamaumauga poloka poloka i le JSON format;
  • Tuuina atu ma faʻamaonia le avanoa API e faʻaaoga ai le Pulega Tusi Faamaonia.

I le taimi nei ua tatou malamalama laʻititi e uiga i faʻamatalaga o Hyperledger Fabric, seʻi o tatou faia se mea aoga!

Fa'aogaina poloka poloka

Fausiaina o le faʻafitauli

O le galuega o le faʻatinoina o le fesoʻotaʻiga Citcoin faʻatasi ai ma galuega nei: fatuina se tala, maua se paleni, faʻapipiʻi lau teugatupe, faʻafeiloaʻi tupe mai le tasi teugatupe i le isi. Seʻi o tatou tusi se ata faʻataʻitaʻiga, lea o le a tatou faʻatinoina atili i se konekarate atamai. O lea la, o le ai ai a matou tala e iloagofie i igoa ma o loʻo i ai se paleni, ma se lisi o tala. Fa'amatalaga ma se lisi o fa'amatalaga e, i tulaga o aseta Hyperledger Fabric. E tusa ai, o loʻo i ai so latou talaʻaga ma se tulaga o loʻo iai nei. O le a ou taumafai e tusi manino lenei:

Blockchain: o le a le PoC e tatau ona tatou fausia?

O fuainumera pito i luga o le setete o loʻo i ai nei, o loʻo teuina i totonu o le "World state" database. I lalo ifo o latou o loʻo faʻaalia ai le tala faʻasolopito o loʻo teuina i totonu ole poloka poloka. O le tulaga o iai nei o aseta ua suia e ala i fefaʻatauaiga. O le Aseta e suia naʻo lona atoaga, o se taunuuga o le fefaʻatauaiga, ua faia ai se mea fou, ma o le tau o le aseta i le taimi nei e alu i le talafaasolopito.

IBM Ao

Matou te fatuina se tala i IBM ao. Mo le faʻaogaina o le poloka poloka, e tatau ona faʻaleleia i le Pay-As-You-Go. Atonu e le vave lenei faiga, aua... E talosagaina e le IBM fa'amatalaga fa'aopoopo ma fa'amaonia ma le lima. I luga o se faʻamatalaga lelei, e mafai ona ou fai atu o loʻo i ai i le IBM mea lelei aʻoaʻoga e faʻatagaina oe e faʻapipiʻi Hyperledger Fabric i la latou ao. Sa ou fiafia i le faasologa o tala ma faataitaiga nei:

O ata nei o le IBM Blockchain platform. E le o se faʻatonuga i le auala e fai ai se poloka poloka, ae na o se faʻaaliga o le lautele o le galuega. O lea, mo o tatou faamoemoega, tatou te faia se tasi Faalapotopotoga:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Matou te faia ni nodes i totonu: Orderer CA, Org1 CA, Orderer Peer:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Matou te fatuina tagata faʻaoga:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Fausia se Alalaupapa ma ta'u citcoin:

Blockchain: o le a le PoC e tatau ona tatou fausia?

O le mea moni o le Channel o se poloka poloka, o lea e amata i le poloka zero (Kenese poloka):

Blockchain: o le a le PoC e tatau ona tatou fausia?

Tusia o se Konekarate Atamai

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

I le faʻaogaina, e tatau ona manino mea uma iinei:

  • E tele galuega (AddAccount, GetAccounts, SendFrom, GetBalance, RefillBalance) o le a valaʻau le polokalame demo e faʻaaoga ai le Hyperledger Fabric API.
  • O galuega a SendFrom ma RefillBalance e fa'atupuina mea e tutupu o le a maua e le polokalame fa'ata.
  • Ole galuega fa'anatinati e ta'ua tasi pe a fa'amataina se konekarate atamai. O le mea moni, e taʻua e le naʻo le tasi, ae o taimi uma e suia ai le suiga o le konekarate atamai. O le mea lea, o le amataina o se lisi ma se laina gaogao o se manatu leaga, aua I le taimi nei, pe a tatou suia le kopi o le konekarate atamai, o le a tatou leiloa le lisi o loʻo iai nei. Ae e le afaina, o loʻo ou aʻoaʻoina).
  • Fa'amatalaga ma se lisi o fa'amatalaga o fa'amaumauga a le JSON. O loʻo faʻaaogaina le JS mo le faʻaogaina o faʻamatalaga.
  • E mafai ona e mauaina le tau o loʻo iai nei o se aseta e faʻaaoga ai le getState function call, ma faʻafouina e faʻaaoga ai le putState.
  • Pe a fatuina se Teugatupe, o le AddAccount galuega e taʻua, lea e faia ai se faʻatusatusaga mo le numera maualuga o faʻamatalaga i totonu o le poloka poloka (maxAccounts = 5). Ma o iinei o loʻo i ai se jamb (ua e matauina?), lea e taʻitaʻia ai le faʻateleina o le numera o tala. E tatau ona aloese mai ia mea sese)

Ma le isi, matou te utaina le konekarate atamai i totonu o le Channel ma faʻaalia:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Sei o tatou vaʻai i le fefaʻatauaiga mo le faʻapipiʻiina o Smart Contract:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Se'i tatou va'ai i fa'amatalaga e uiga i la tatou Alanui:

Blockchain: o le a le PoC e tatau ona tatou fausia?

O se taunuuga, matou te maua le ata o loʻo i lalo o se fesoʻotaʻiga poloka poloka i le IBM ao. O loʻo faʻaalia foi e le ata se polokalame faʻataʻitaʻiga o loʻo taʻavale i le ao Amazon i luga o se masini komepiuta (sili atu i ai i le isi vaega):

Blockchain: o le a le PoC e tatau ona tatou fausia?

Fausia se GUI mo le Hyperledger Fabric API telefoni

Hyperledger Fabric ei ai se API e mafai ona fa'aoga e:

  • Fausia auala;
  • Feso'ota'iga e va'ava'ai i le alavai;
  • Fa'apipi'i ma fa'ata'ita'iina konekarate atamai i le alalaupapa;
  • Vala'au fefa'atauaiga;
  • Talosagaina faʻamatalaga ile poloka poloka.

Fausiaina o talosaga

I la matou polokalame faʻataʻitaʻiga o le a matou faʻaogaina le API naʻo le valaʻau o fefaʻatauaiga ma talosaga faʻamatalaga, aua Ua uma ona matou faʻamaeʻaina laasaga o loʻo totoe e faʻaaoga ai le IBM blockchain platform. Matou te tusia se GUI e faʻaaoga ai se faʻapipiʻi tekonolosi masani: Express.js + Vue.js + Node.js. E mafai ona e tusia se tala ese i le auala e amata ai le fatuina o upega tafaʻilagi faʻaonaponei. O iinei o le a ou tuʻuina atu ai se fesoʻotaʻiga i le faasologa o tautalaga e sili ona ou fiafia i ai: Fa'aoga atoa i luga ole laiga ole Vue.js & Express.js. Ole fa'ai'uga ole talosaga a le tagata fa'atau-server ma se fa'ata'ita'iga fa'akalafi masani ile Google's Material Design style. O le REST API i le va o le tagata o tausia ma le server e aofia ai le tele o telefoni:

  • HyperledgerDemo/v1/init - amata le poloka poloka;
  • HyperledgerDemo/v1/accounts/list - maua se lisi o tala uma;
  • HyperledgerDemo/v1/account?name=Bob&balance=100 — fatu Bob account;
  • HyperledgerDemo/v1/info?account=Bob — maua faamatalaga e uiga i Bob account;
  • HyperledgerDemo/v1/transaction?from=Bob&to=Alice&volume=2 - fesiitai lua tupe mai Bob ia Alice;
  • HyperledgerDemo/v1/disconnect - tapuni le sootaga i le poloka poloka.

Fa'amatalaga o le API ma fa'ata'ita'iga o lo'o aofia i totonu Upega tafa'ilagi a le tagata meli - o se polokalame lauiloa mo le suʻeina o le HTTP API.

Fa'ata'ita'iga talosaga ile ao Amazon

Na ou lafoina le talosaga i Amazon ona ... E le'i mafai lava e le IBM ona fa'aleleia la'u tala ma fa'ataga a'u e faia ni 'au'aunaga mata'utia. Fa'afefea ona fa'aopoopo se cherry i le fa'alapotopotoga: www.citcoin.info. O le a ou faʻaauau pea le server mo sina taimi, ona tape lea, aua... sene mo le lisi o loʻo tafe, ma e leʻi lisiina tupe citcoin i luga o le faʻatauga faʻatau) O loʻo ou aofia ai faʻamalama o le faʻataʻitaʻiga i totonu o le tusiga ina ia manino le manatu o le galuega. O le talosaga demo e mafai ona:

  • Amata le poloka poloka;
  • Fausia se Teugatupe (ae o lenei e le mafai ona e fatuina se Teugatupe fou, ona o le numera maualuga o faʻamatalaga faʻamaonia i totonu o le konekarate atamai ua ausia i le poloka poloka);
  • Maua se lisi o Fa'amatalaga;
  • Fa'aliliu tupe citcoin i le va o Alice, Bob ma Alex;
  • Maua mea na tutupu (ae o lea e leai se auala e faʻaalia ai mea na tutupu, o lea mo le faʻafaigofieina o le atinaʻe e fai mai e le lagolagoina mea tutupu);
  • Gaioiga o fa'amau.

Muamua matou te amataina le poloka poloka:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Le isi, matou te fatuina a matou tala, aua le faʻaumatia le taimi ma le paleni:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Matou te maua se lisi o faʻamatalaga avanoa uma:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Matou te filifilia le tagata e auina atu ma le tagata e mauaina, ma maua a latou paleni. Afai e tutusa le tagata e auina atu ma le tagata e mauaina, ona toe faʻatumu lea o lana tala:

Blockchain: o le a le PoC e tatau ona tatou fausia?

I totonu o le ogalaau matou te mataʻituina le faʻatinoina o fefaʻatauaiga:

Blockchain: o le a le PoC e tatau ona tatou fausia?

O le mea moni, o na mea uma i le polokalame faʻataʻitaʻiga. I lalo e mafai ona e vaʻai i la matou fefaʻatauaiga i le poloka poloka:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Ma le lisi lautele o fefaʻatauaiga:

Blockchain: o le a le PoC e tatau ona tatou fausia?

Faatasi ai ma lenei mea, ua matou faʻamaeʻaina le faʻatinoina o le PoC e fatu ai le fesoʻotaʻiga Citcoin. O le a se isi mea e manaʻomia ona fai mo Citcoin e avea ai ma fesoʻotaʻiga atoa mo le fesiitaiga o tupe? E itiiti lava:

  • I le tulaga o le fatuina o tala, faʻatino le faʻatupuina o se ki faʻapitoa / lautele. O le ki tumaoti e tatau ona teuina ma le tagata faʻaoga tala, o le ki faʻasalalau e tatau ona teuina i totonu ole poloka poloka.
  • Fai se fesiitaiga tupe e fa'aoga ai se ki fa'alaua'itele, nai lo se igoa, e iloa ai le tagata fa'aoga.
  • Fa'ailoga fefa'ataua'iga e alu mai le tagata fa'aoga i le 'au'aunaga ma lana ki patino.

iʻuga

Ua matou faʻatinoina le fesoʻotaʻiga Citcoin faʻatasi ai ma galuega nei: faʻaopoopo se tala, maua se paleni, faʻapipiʻi lau teugatupe, faʻafeiloaʻi tupe mai le tasi teugatupe i le isi. O le a la le tau na matou fausia ai se PoC?

  • E tatau ona e suʻesuʻeina poloka poloka i le lautele ma le Hyperledger Fabric aemaise lava;
  • Aoao e faʻaoga IBM poʻo Amazon ao;
  • A'oa'o le gagana fa'apolokalame a le JS ma nisi auivi i luga ole laiga;
  • Afai o nisi faʻamatalaga e manaʻomia le teuina i totonu o le poloka poloka, ae i totonu o se isi faʻamaumauga, ona aʻoaʻo lea e tuʻufaʻatasia, mo se faʻataʻitaʻiga, ma PostgreSQL;
  • Ma le mea mulimuli ae le itiiti - e le mafai ona e ola i le lalolagi faʻaonaponei e aunoa ma le malamalama i Linux!)

Ioe, e le o se roketi faasaienisi, ae e tatau ona e galue malosi!

Punaoa ile GitHub

Faʻapipiʻi puna GitHub. Faʻamatalaga puupuu o le fale teu oloa:
Fa'amaumauga «faigaluega» — Node.js server
Fa'amaumauga «tagata faʻatau» — Node.js client
Fa'amaumauga «blockchain"(Parameter values ​​and keys, ioe, e le o galue ma e tuʻuina atu naʻo se faʻataʻitaʻiga):

  • konekarate - smart contract source code
  • atotupe - fa'aoga ki mo le fa'aogaina o le Hyperledger Fabric API.
  • *.cds - tu'ufa'atasia fa'asologa o konekarate atamai
  • *.json faila - faʻataʻitaʻiga o faila faʻatulagaina mo le faʻaogaina o le Hyperledger Fabric API

Ua na o le amataga!

puna: www.habr.com

Faaopoopo i ai se faamatalaga