Com suggereix el títol, en aquesta guia us mostrarem com esdevenir desenvolupador de blockchain. Com veureu aviat, el desenvolupament de blockchain no és molt diferent del desenvolupament web normal. Per facilitar-vos les coses, hem escrit aquesta guia per ajudar-vos a aprendre el desenvolupament de blockchain i donar-vos passos d’acció al final de cada secció..

L’abast del desenvolupament de la cadena de blocs de Bitcoin era una mica limitat. Tot i això, el joc va canviar completament amb l’aparició d’Ethereum, que va ser la primera cadena de blocs programable del món. Els desenvolupadors de tot el món finalment van tenir l’oportunitat de crear aplicacions a sobre d’una cadena de blocs. Aquesta és la raó per la qual l’aprenentatge del desenvolupament de blockchain s’ha convertit en una habilitat tan calenta.

No cal dir que vivim en l ’“ era de la cadena de blocs ”. L’impacte que pot tenir en el nostre futur és realment aterrador i magnànim. Llavors, com podeu obtenir una part d’aquesta “acció blockchain”? Si voleu convertir-vos en desenvolupador de blockchain, hi ha alguns passos que heu de seguir.

Amb sort, al final de la guia tindreu les eines necessàries per iniciar el vostre viatge. Si voleu convertir-vos en desenvolupador de debò, hem d’establir algunes expectatives per a vosaltres. En primer lloc, trigarà temps i haureu de dedicar el vostre temps i recursos a la vostra formació (podeu continuar el curs de desenvolupament de blockchain seguint les nostres classes en línia). En segon lloc, no espereu resultats immediats, convertir-vos en desenvolupador de blockchain no és una píndola màgica.

Així que, dit això, comencem el vostre viatge.

Converteix-te en desenvolupador de Blockchain: fita número 1: entendre els conceptes bàsics

Eines de desenvolupament de blockchain

Un dels obstacles més importants amb qualsevol cosa tan nova i revolucionària, com la tecnologia blockchain, és familiaritzar-se amb diversos conceptes integrants del sistema..

Si sou principiant, hi ha alguns termes que heu de conèixer:

Apreneu la tecnologia Blockchain

  • Blockchain: La cadena de blocs és una cadena de blocs en què cada bloc conté dades de valor sense cap supervisió central. És criptogràficament segur i immutable.
  • Descentralitzat: Es diu que Blockchain està descentralitzat perquè no hi ha cap autoritat central que supervisi res.
  • Mecanisme de consens: El mecanisme mitjançant el qual una xarxa descentralitzada arriba a un consens sobre determinats assumptes.
  • Miners: Usuaris que utilitzen la seva potència computacional per obtenir blocs.

Podria ser aconsellable obtenir més informació sobre aquests termes que s’utilitzen àmpliament a la criptoesfera. Es recomana que consulteu el nostre glossari complet. És important aprendre aquests termes bàsics, en cas contrari, us perdreu molt més en la vostra formació. Ara, a continuació, és hora d’educar-vos més sobre els aspectes tècnics de la cadena de blocs.

Si esteu interessats en els aspectes tècnics de com crear una aplicació de tecnologia avançada a la part superior de Blockchain, definitivament hauríeu d’aprendre els detalls de la criptoeconomia. La majoria dels desenvolupadors solen tenir un bon coneixement de la part “criptogràfica” de l’equació, però el seu coneixement de la part “econòmica” manca extremadament.

Aquesta diferència de coneixement és extremadament evident quan estudieu alguns d’aquests ICO flotant. És molt evident veure que el vessant econòmic de les seves ICO no està ben pensat.

Per tant, tenint en compte això, pot ser una bona idea llegir una mica sobre economia i tenir-ne una idea general. Si voleu aprendre sobre criptoeconomia en general, podeu consultar el nostre article aquí.

Si us interessa específicament la criptografia i voleu saber com funcionen les signatures i què significa la criptografia de clau pública, llegiu això.

Després d’això, es recomana entendre com funciona el bitcoin. bitcoin és l’aplicació més estesa, més fina i una de les aplicacions més elegants de la tecnologia blockchain. Fins i tot es pot anomenar el millor exemple del que la tecnologia blockchain pot assolir només a causa de l’impacte que ha tingut.

Per tant, és aconsellable llegir el llibre blanc de Satoshi Nakamoto sobre bitcoin. Tu pots troba-la aquí. Ara es completa la primera fita.

Vegem els passos d’acció que heu de fer aquí:

  • Conegueu els diversos termes i lèxics.
  • Llegiu els aspectes més tècnics de la cadena de blocs.
  • Llegiu el llibre blanc de bitcoin.

Converteix-te en desenvolupador de Blockchain: fita núm. 2: aprèn el procés

És bastant sorprenent veure quants “desenvolupadors” incipients no han tingut cap experiència de primera mà amb criptomoneda. Com podeu innovar i millorar una plataforma si no l’heu utilitzat ni una sola vegada??

Es recomana que comenceu a conèixer el sistema avui mateix.

Aneu a Coinbase o a qualsevol altra bossa amb la qual estigueu còmode o al qual pugueu accedir al vostre país i compreu algunes monedes. No cal que creeu immediatament una cartera extensa, només heu de comprar unes quantes monedes i veure com funciona tot el procés.

És extremadament senzill. Com que no comprareu moltes monedes, simplement utilitzeu una cartera bàsica en línia.

Aquestes carteres són les més fàcils d’utilitzar entre totes. La creació és molt senzilla perquè bàsicament es crea el vostre propi compte en qualsevol dels serveis d’intercanvi. A més, podeu accedir a aquesta cartera des de qualsevol servidor o dispositiu del món sempre que estigui connectat a la xarxa. Dit això, hi ha un gran problema pel que fa a les carteres en línia. La vostra clau privada es desarà en un altre servidor. Això és bàsicament com servir la clau dels pirates informàtics en un plat de plata. NO utilitzeu carteres en línia per emmagatzemar grans quantitats de diners. Emmagatzemeu el mínim necessari per a l’intercanvi.

A mesura que creeu una àmplia cartera, heu d’aprendre a utilitzar carteres fredes per emmagatzemar els vostres diners. Podeu aprendre a fer-ho aquí. Més endavant, si creeu el vostre ICO, heu de saber com funcionen les carteres i, en particular, les carteres multi-sig.

Acabem aquesta secció aquí, la part dura comença a partir de la següent fita.

Els passos d’acció són aquí:

  • Esbrineu com funcionen els intercanvis.
  • Conegueu les carteres.

Converteix-te en desenvolupador de Blockchain: fita núm. 3: obtenim la codificació!

Com a desenvolupador de blockchain, afrontareu molts desafiaments al fons. Crear i mantenir una cadena de blocs pública no és fàcil per diversos motius.

(Abans de continuar, un gran crit a David Schwartz per la seva adreça principal sobre l’ús de C ++ en el desenvolupament de programari blockchain a CPPCON 2016.)

  • Raó 1: seguretat

Les cadenes de blocs, com diu David Schwartz, haurien de ser fortaleses. En primer lloc, el codi és públic i obert per a tothom. Tothom pot mirar el codi i comprovar si hi ha errors o vulnerabilitats. Tanmateix, a diferència d’altres recursos de codi obert, l’inconvenient de trobar vulnerabilitats al codi blockchain és enorme. Qualsevol programador pot piratejar i escapar-se de milions i milions de dòlars. A causa d’aquestes legítimes preocupacions de seguretat, el desenvolupament de la cadena de blocs sol ser molt lent.

  • Raó 2: Gestió de recursos

És important seguir el ritme de la xarxa. No podeu quedar-vos massa enrere i no estar al dia amb totes les exigències de la xarxa. Haureu d’estar ben equipat per gestionar consultes remotes i locals.

  • Raó 3: actuació

La cadena de blocs sempre ha de funcionar amb les seves màximes capacitats possibles, però perquè això passi l’idioma escollit ha de ser extremadament versàtil. El cas és que hi ha certes tasques a la cadena de blocs que són paral·lelitzables mentre que hi ha algunes tasques que no es poden fer en paral·lel.

Un bon exemple d’una tasca “paral·lelitzable” és la verificació de signatures digitals. Tot el que necessiteu per a la verificació de la signatura és la clau, la transacció i la signatura. Amb només tres dades, podeu realitzar verificacions de manera paral·lela.

Tot i això, no totes les funcions d’un blockchain s’han de fer d’aquesta manera. Penseu en l’execució de la transacció en si mateixa. No es poden executar diverses transaccions en paral·lel; s’ha de fer d’un en un per evitar errors com la despesa doble. Alguns idiomes són bons en operacions paral·leles, mentre que altres són bons en operacions no paral·leles.

  • Raó 4: aïllament

Què és el comportament determinista?

Si A + B = C, llavors, siguin quines siguin les circumstàncies, A + B sempre serà igual a C. Això es denomina comportament determinista.

Les funcions de hash són deterministes, és a dir, el hash d’A serà sempre H (A).

Per tant, en el desenvolupament de blockchain, totes les operacions de transaccions han de ser deterministes. No es pot fer cap transacció que es comporti d’una manera i després es comporti d’una altra manera l’endemà. De la mateixa manera, no podeu tenir contractes intel·ligents que funcionin de dues maneres diferents en dues màquines diferents.

L’única solució a això és l’aïllament. Bàsicament, aïlleu els vostres contractes i transaccions intel·ligents d’elements no deterministes.

Hi ha alguns idiomes que compleixen la majoria d’aquestes necessitats. Si sou un desenvolupador de blockchain, definitivament haureu de tenir coneixements bàsics de C ++ i JavaScript.

Tot i que C ++ pot semblar una mica obsolet, la veritat és que compleix meravellosament totes les funcionalitats que hem descrit anteriorment. De fet, Satoshi Nakamoto va escriure el codi font de bitcoin en C.++.

Juntament amb HTML i CSS, és una de les tres tecnologies bàsiques en la producció de contingut de la xarxa mundial. Normalment s’utilitza Javascript per crear pàgines web altament interactives.

Per tant, ara veurem com crear una cadena de blocs molt senzilla amb Javascript.

Enorme crit a savjee.be pel contingut següent.

Com fem un bloc? En què consisteix un bloc simple? A la nostra simple moneda criptogràfica que farem (anomenem-la “BlockGeeksCoin”), cada bloc tindrà la informació següent:

  • Índex: Per conèixer el número de bloc.
  • Marca de temps: Conèixer el moment de la creació.
  • Dades: Les dades dins del bloc.
  • Hash anterior: El hash del bloc anterior.
  • Hash: El hash del bloc actual.

Abans de continuar. Heu d’entendre determinats termes que farem servir al nostre programa:

  • Això: La paraula clau “això” s’invoca dins d’una funció i us permet accedir als valors dins d’un objecte específic que crida a aquesta funció en particular.
  • Constructor: Un constructor és una funció especial que pot ajudar a crear i inicialitzar un objecte dins d’una classe. Cada classe està restringida a un únic constructor.

Ara que ja està fet, comencem a crear el nostre bloc.

Creació del bloc

const SHA256 = requereix ("crypto-js / sha256");

classe Bloc

{

constructor (índex, marca de temps, dades, anteriorHash = “)

{

this.index = índex;

this.previousHash = anteriorHash;

this.timestamp = marca de temps;

this.data = dades;

this.hash = this.calculateHash ();

}

calculateHash ()

{

retorna SHA256 (this.index + this.previousHash + this.timestamp + JSON.stringify (this.data)). toString ();

}

}

Anàlisi de codi

D’acord, per tant, aquí mateix hi ha un bloc. Per tant, a la primera línia del codi, hem anomenat la biblioteca crypto-js perquè la funció hash sha256 no està disponible a JavaScript.

A continuació, vam invocar un constructor dins de la classe per demanar objectes que tinguessin certs valors. El que probablement us crida l’atenció és la funció calculateHash (). Vegem què fa exactament.

En un bloc, agafem tot el contingut i els hash per obtenir el hash d’aquest bloc en particular. Estem utilitzant la funció JSON.stringify per convertir les dades del bloc en una cadena per hash-lo.

D’acord, doncs, tenim el bloc preparat i bo per començar. Ara connectem els blocs junts a una cadena de blocs.

Creació del blockchain: convertir-se en un enginyer de blockchain

classe Blockchain

{

// Secció 1 Creació de blocs de Gènesi

constructor ()

{

this.chain = [this.createGenesisBlock ()];

}

createGenesisBlock ()

{

torna el nou bloc (0, "01/01/2017", "Bloc del Gènesi", "0");

}

// secció 2 afegint nous blocs

getLatestBlock ()

{

torneu this.chain [this.chain.length – 1];

}

addBlock (newBlock) {

newBlock.previousHash = this.getLatestBlock (). hash;

newBlock.hash = newBlock.calculateHash ();

this.chain.push (newBlock);

}

// secció 3 validant la cadena

isChainValid ()

{

per (permeti i = 1; i < this.chain.length; i ++)

{

const currentBlock = this.chain [i];

const previousBlock = this.chain [i – 1];

if (currentBlock.hash! == currentBlock.calculateHash ()) {

tornar fals;

}

if (currentBlock.previousHash! == previousBlock.hash)

{

tornar fals;

}

}

tornar cert;

}

}

Anàlisi de codi

D’acord, doncs, hi ha moltes coses a la cadena de dalt, dividim-les en seccions.

  • Secció 1: El bloc del Gènesi

Què és el bloc de gènesi?

El bloc de gènesi és el primer bloc de la cadena de blocs i el motiu pel qual és especial és que, tot i que cada bock apunta al bloc anterior, el bloc de gènesi no apunta a res. Per tant, en el moment que es crea una nova cadena, s’invoca immediatament el bloc de gènesi.

A més, podeu veure una funció “createGenesisBlock ()” en què hem proporcionat les dades del bloc manualment:

createGenesisBlock ()

{

torna el nou bloc (0, "01/01/2017", "Bloc del Gènesi", "0");

}

  • Secció 2: Afegir els blocs

En primer lloc, haurem de saber quin és l’últim bloc de la cadena de blocs actualment. Per a això fem servir la funció getLatestBlock ().

getLatestBlock ()

{

torneu this.chain [this.chain.length – 1];

}

Ara que hem determinat l’últim bloc, vegem com afegirem nous blocs.

addBlock (newBlock) {

newBlock.previousHash = this.getLatestBlock (). hash;

newBlock.hash = newBlock.calculateHash ();

this.chain.push (newBlock);

}

Llavors, què passa aquí? Com afegim els blocs? Com comprovem si el bloc donat és vàlid o no?

Recordeu el contingut d’un bloc? Un bloc té el hash del bloc anterior a la dreta?

Per tant, el que farem aquí és senzill. Compareu el valor de hash anterior del nou bloc amb el valor de hash del darrer bloc.

Com esdevenir desenvolupador de blockchain

Cortesia de la imatge: article mitjà de Lauri Hartikka

Si aquests dos valors coincideixen, això vol dir que el nou bloc és legítim i s’afegeix a la cadena de blocs.

  • Secció 3: Validació de la cadena

Ara, hem de comprovar que ningú no s’ha ficat amb la nostra cadena de blocs i que tot és estable.

Estem fent servir el bucle “per” per anar del bloc 1 a l’últim bloc. El bloc de Gènesi és el bloc 0.

per (permeti i = 1; i < this.chain.length; i ++)

{

const currentBlock = this.chain [i];

const previousBlock = this.chain [i – 1];

En aquesta part del codi estem definint dos termes, bloc actual i bloc anterior. I ara simplement trobarem el hash d’aquests dos valors.

if (currentBlock.hash! == currentBlock.calculateHash ()) {

tornar fals;

}

if (currentBlock.previousHash! == previousBlock.hash)

{

tornar fals;

}

}

tornar cert;

}

Si el “previousHash” del bloc actual no és igual al “Hash” del bloc anterior, llavors aquesta funció retornarà False, en cas contrari retornarà True.

Utilitzant la cadena de blocs

Ara, per fi utilitzarem la cadena de blocs per crear el nostre BlockGeeksCoin.

deixa BlockGeeksCoin = blockchain nou ();

BlockGeeksCoin.addBlock (bloc nou (1, "20/07/2017", {quantitat: 4}));

BlockGeeksCoin.addBlock (bloc nou (2, "20/07/2017", {quantitat: 8}));

I ja està!

Llavors, què va passar aquí?

Vam crear una nova criptomoneda basada en la cadena de blocs i la vam anomenar BlockGeeksCoin. Invocant aquest nou objecte, vaig activar el constructor, que al seu torn va crear automàticament el bloc Genesis.

Simplement hi vam afegir dos blocs més i els vam donar algunes dades.

És tan senzill.

(Gràcies savjee.be per la increïble i senzilla explicació.)

Això és tot per aquesta fita. Vegem els passos d’acció. És molt senzill, però definitivament no és fàcil:

  • Formeu-vos en un dels molts llenguatges compatibles amb blockchain, com ara C ++, Javascript, C #, Go, etc..

Converteix-te en desenvolupador de Blockchain: fita número 4: educar-te sobre contractes intel·ligents

com funcionen els contractes intel·ligents

Com es defineix un contracte intel·ligent?

Segons Wikipedia, un contracte intel·ligent és “un protocol informàtic destinat a facilitar, verificar o fer complir la negociació o l’execució d’un contracte”. Tot i que va ser proposat per primera vegada pel criptògraf nord-americà Nick Szabo el 1996, a Ethereum se li atribueix sovint la popularització del concepte i la seva integració..

Podeu obtenir més informació sobre els contractes intel·ligents a la nostra guia detallada aquí.

Quines són les propietats desitjables que desitgem en el nostre contracte intel·ligent??

Tot el que s’executa en una cadena de blocs ha de ser immutable i ha de tenir la capacitat de passar per diversos nodes sense comprometre la seva integritat. Com a resultat, la funcionalitat del contracte intel·ligent ha de ser tres:

  • Determinista.
  • Terminable.
  • Aïllat.

Funció núm. 1: determinista

Un programa és determinista si dóna la mateixa sortida a una entrada determinada cada vegada. Per exemple. Si 3 + 1 = 4, llavors 3 + 1 SEMPRE serà 4 (suposant la mateixa base). Per tant, quan un programa dóna la mateixa sortida al mateix conjunt d’entrades en diferents ordinadors, el programa s’anomena determinista.

Hi ha diversos moments en què un programa pot actuar de manera poc determinista:

  • Cridant funcions del sistema no deterministes: Quan un programador crida una funció indeterminista al seu programa.
  • Recursos de dades no deterministes: Si un programa adquireix dades durant el temps d’execució i aquesta font de dades no és determinista, el programa es torna indeterminista. Per exemple. Suposem que un programa que adquireix les deu primeres cerques a Google d’una consulta concreta. La llista pot continuar canviant.
  • Trucades dinàmiques: Quan un programa truca al segon programa, s’anomena trucada dinàmica. Com que l’objectiu de la trucada es determina només durant l’execució, no té caràcter determinista.

Funció núm. 2: finalitzable

En lògica matemàtica, tenim un error anomenat “problema de detenció”. Bàsicament, afirma que hi ha una incapacitat per saber si un determinat programa pot o no executar la seva funció en un límit de temps. El 1936, Alan Turing va deduir, utilitzant el problema diagonal de Cantor, que no hi ha manera de saber si un programa determinat pot acabar en un límit de temps o no.

Obviouslybviament, això és un problema amb els contractes intel·ligents, ja que, per definició, els contractes han de ser capaços de finalitzar en un termini determinat. Hi ha algunes mesures preses per garantir que hi hagi una manera de “matar” externament el contracte i de no entrar en un bucle sense fi que esgoti els recursos:

  • Incompletesa de Turing: Una cadena de blocs incompleta de Turing tindrà una funcionalitat limitada i no serà capaç de fer salts i / o bucles. Per tant, no poden entrar en un bucle sense fi.
  • Mesurador de pas i tarifes: Un programa pot simplement fer un seguiment del nombre de “passos” que ha fet, és a dir, el nombre d’instruccions que ha executat, i després finalitzar un cop s’hagi executat un recompte de passos concret. Un altre mètode és el mesurador de taxes. Aquí els contractes s’executen amb una comissió prepagada. Cada execució d’instruccions requereix una quantitat particular de comissió. Si la comissió invertida supera la comissió prepagada, es rescindeix el contracte.
  • Temporitzador: Aquí es guarda un temporitzador predeterminat. Si l’execució del contracte supera el termini, s’abortarà externament.

Funció núm. 3: aïllat

En una cadena de blocs, tothom i tothom pot carregar un contracte intel·ligent. No obstant això, a causa d’això, els contractes poden, conscientment i sense saber-ho, contenir virus i errors. Si el contracte no està aïllat, això pot dificultar tot el sistema. Per tant, és fonamental que un contracte es mantingui aïllat en un sandbox per salvar tot l’ecosistema d’efectes negatius.

Ara que hem vist aquestes funcions, és important saber com s’executen. Normalment, els contractes intel·ligents s’executen mitjançant un dels dos sistemes:

  • Màquines virtuals: Ethereum utilitza això.
  • Docker: Fabric ho fa servir.

Comparem aquests dos i determinem quins són els que permeten obtenir un ecosistema millor. Per simplicitat, compararem Ethereum (màquina virtual) amb Fabric (Docker).

Si us interessa específicament el desenvolupament d’Ethereum, és important que també apreneu la solidesa.

Per a qualsevol persona que vulgui aprendre a crear DAPP (aplicacions descentralitzades) o entrar al joc ICO, l’aprenentatge de Solidity és una necessitat absoluta. Ja tenim una guia detallada que podeu llegir aquí. Tanmateix, aquí us donarem una visió general bàsica. Solidity va ser desenvolupat per Gavin Wood, Christian Reitwiessner, Alex Beregszaszi, Yoichi Hirai i diversos antics col·laboradors bàsics d’Ethereum per permetre escriure contractes intel·ligents en plataformes blockchain com Ethereum.

La solidesa és un llenguatge de tipus escàs i reduït, amb una sintaxi molt similar a ECMAScript (Javascript). Hi ha alguns punts clau que cal recordar del document Ethereum Design Rationale, és a dir, que estem treballant en un model de pila i memòria amb una mida de paraula d’instrucció de 32 bytes, l’EVM (Ethereum Virtual Machine) ens dóna accés al programa ” stack ”que és com un espai de registre on també podem enganxar adreces de memòria per fer el bucle / salt del comptador de programes (per al control de programes seqüencial), una“ memòria ”temporal expandible i un“ emmagatzematge ”més permanent que s’escriu realment blockchain i, sobretot, EVM requereix un determinisme total dins dels contractes intel·ligents.

Si esteu interessats en aprendre la solidesa, podeu consultar la nostra classe en profunditat aquí.

Per tant, vegem ara els passos d’acció:

  • Comprendre com funcionen els contractes intel·ligents.
  • (Opcional per als desenvolupadors d’Ethereum) Apreneu Solidity.

Converteix-te en desenvolupador de Blockchain: fita número 5: entra en una empresa de desenvolupament de Blockchain

Una de les coses més importants que podeu fer com a desenvolupador incipient és mantenir-vos constantment en la barreja.

Aneu a unir-vos als fòrums de Reddit, a les pàgines de Gitbub i a StackExchange i connecteu-vos amb altres desenvolupadors i estigueu sempre pendents de qualsevol novetat sobre la tecnologia..

Juntament amb això, us serà útil saber què cerquen les persones als desenvolupadors de blockchain. Quines qualitats busquen les empreses quan volen contractar? Podeu trobar aquesta informació aquí.

Aquesta informació pot ser molt útil per afinar les vostres habilitats prou com per atraure les empreses.

Camí per convertir-se en desenvolupador o enginyer de Blockchain: conclusió

Per tant, aquest és un full de ruta aproximat per a vosaltres i per al vostre viatge per convertir-vos en un desenvolupador de blockchain. Això per si sol no serà suficient, és clar, haureu de mostrar la vostra pròpia iniciativa i estar sempre en la barreja.

Si busqueu un recurs d’informació sobre el desenvolupament de blockchain, feu clic aquí.

Us desitgem tot el millor en el vostre viatge!

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me