Esteu buscant una guia per aprendre a construir una aplicació blockchain? Aquí teniu una guia que us pot ajudar a crear una aplicació blockchain des de zero.
En aquest article, crearem la nostra aplicació blockchain. Recentment, hem explicat com construir una cadena de blocs. Va ser una guia completa sobre la construcció d’una cadena de blocs en el llenguatge de programació Python. L’objectiu principal del tutorial és conèixer la tecnologia blockchain i el seu funcionament intern.
Aquest tutorial, però, tracta sobre com crear una aplicació mitjançant blockchain. L’aplicació descentralitzada (dApp) podrà aprofitar les propietats de la cadena de blocs.
Construirem una simple aplicació blockchain amb Ethereum. Ethereum és una tecnologia de cadena de blocs de segona generació que proporciona funcions avançades com ara contractes intel·ligents, Prova de joc i, sobretot, la possibilitat de crear aplicacions descentralitzades (dApps).
Comencem, doncs, amb el nostre tutorial “Com es crea una aplicació blockchain”. Aquest tutorial també està dirigit a aquells que busquen construir una aplicació de blockchain senzilla. Per construir una simple aplicació blockchain, utilitzarem la xarxa Ethereum.
Però, abans de començar, encertem els nostres conceptes bàsics.
Inscriu-te ara: Curs de Fonaments de l’Enterprise Blockchains
Què és dApp?
El primer pas que farem per construir un tutorial d’aplicacions blockchain és primer aprendre el concepte de l’aplicació descentralitzada (dApp).
dApp significa aplicació descentralitzada. És un tipus d’aplicació diferent que ofereix característiques clau, inclosa la capacitat de funcionar de forma autònoma. L’aplicació també emmagatzema dades criptogràficament perquè cap entitat no autoritzada pugui accedir-hi sense l’autorització adequada.
Totes aquestes característiques fan que les aplicacions descentralitzades siguin molt útils a l’entorn empresarial actual. Les aplicacions també són capaces d’utilitzar tokens que es poden utilitzar per aprofitar les funcions que ofereix l’aplicació. A més, l’aplicació també pot distribuir fitxes per incentivar els nodes que participen en la funcionalitat de l’aplicació.
Triar una plataforma: per què escollim la plataforma Ethereum
Ara mateix, hi ha moltes plataformes que podeu triar per crear la vostra dApp. Inclouen plataformes de blockchain populars com Ethereum, Hyperledger Fabric i Cardano. Entre tots aquests, Ethereum sembla ser la millor opció a causa de la comunitat activa, les eines i els tutorials disponibles en línia.
Una altra raó per la qual escollim Ethereum és que utilitza Solidity. La solidesa es fa explícitament per desplegar i crear dApps i contractes intel·ligents. És fàcil d’aprendre i us proporciona la flexibilitat per experimentar.
Guia pràctica per construir una aplicació descentralitzada de blockchain
Abans d’endinsar-nos en el codi, m’agradaria enumerar els passos que descriuen el procés de creació d’una aplicació blockchain. Passem-ho a continuació.
Troba una idea
El primer pas és trobar una idea per treballar-la. La descentralització és un nou concepte interessant que pot tenir molts casos d’ús. Com a estudiant o enginyer, hauríeu de tenir una idea útil que pugui beneficiar-vos o la vostra empresa. A més, no us preocupeu si no podeu venir amb una idea que canviï el paisatge. Està bé crear dApps senzilles només per aprendre i practicar.
També podeu cercar problemes que heu d’afrontar amb blockchain i potser intenteu solucionar-los al màxim. El punt aquí és veure el problema des del punt de dolor i després intentar solucionar-lo.
Si intenteu crear una dApp per al vostre negoci o segons els requisits del vostre negoci, haureu de fer una anàlisi de costos / beneficis adequada. També heu d’explorar els riscos associats al projecte i veure si el vostre equip empresarial pot gestionar l’aplicació amb la deguda diligència.
En cap cas, no hauríeu de prendre cap decisió precipitada que us penedireu més endavant. Això es deu al fet que el desenvolupament de blockchain és costós, sobretot a l’hora de trobar el talent per desenvolupar-lo i gestionar-lo. A més, hi ha una escassetat de desenvolupadors que treballen a la cadena de blocs. En resum, heu de prendre les mesures adequades pel que fa al desenvolupament d’aplicacions blockchain o blockchain.
Aquí teniu una guia per al desenvolupament de dApps que us permet comprendre els mecanismes darrere de la creació d’una nova aplicació descentralitzada.
Trieu un mètode de consens
Qualsevol aplicació descentralitzada requereix un algorisme de consens adequat per funcionar. Assegura que les transaccions es validen i que no es poden produir fraus. Com a desenvolupador o aprenent, heu de triar entre qualsevol dels mètodes de consens disponibles, com ara Prova de joc, Prova de participació delegada, tolerància a fallades bizantina, etc. L’elecció ha de dependre de la vostra familiaritat i dels requisits de l’aplicació.
Triar una plataforma
Aquí heu de triar la plataforma que vulgueu. Clarament, ja hem tractat el punt anterior. Teniu principalment tres plataformes per triar, incloses Ethereum, Hyperledger Fabric i Cardano.
Hi ha molts marcs de blockchain empresarials que podeu utilitzar per a això, però anirem amb Ethereum.
Consola d’administració i interfície d’usuari
Les aplicacions haurien de tenir una experiència d’usuari adequada. Per això, heu de crear una aplicació blockchain amb una bona interfície d’usuari. L’aplicació també hauria de tenir una consola d’administració perquè pugueu gestionar-la sense problemes.
Comprensió dels principis de Blockchain
És habitual que els desenvolupadors iniciïn un tutorial de desenvolupament d’aplicacions blockchain sense entendre els conceptes i principis subjacents. Per això, recomano els conceptes bàsics de blockchain abans de començar amb els tutorials de desenvolupament d’aplicacions. És possible que també vulgueu llegir sobre el seu ecosistema, incloses les eines blockchain, les plataformes i les criptomonedes.
Practicar i desenvolupar
Practica les teves habilitats tant com puguis. Això us proporcionarà les habilitats necessàries per desenvolupar aplicacions més complexes en el futur.
Com es pot crear una aplicació Blockchain? L’enfocament fàcil
Sí, ho has llegit bé. En aquesta secció, el nostre objectiu seria crear una aplicació de blockchain senzilla en només cinc senzills passos. Si mai no heu creat cap aplicació blockchain, aquests cinc passos us ajudaran a entendre millor el procés.
Els cinc passos són els següents.
- Instal·leu dependències i reposeu clons.
- Execució de la CLI de Ganache
- Compilació de contractes
- Desplegament del contracte
- Interacció del contracte
I, això és tot. Podeu trobar passos més detallats a la publicació en si. És una aplicació de votació senzilla a blockchain.
Com es pot crear una aplicació Blockchain? L’enfocament dur
Bé! Em tens! No voleu la manera fàcil, però voleu aprendre blockchain de la manera més difícil. No us preocupeu, ja que, en aquesta secció, crearem una aplicació de llista de tot fent servir els contractes intel·ligents d’Ethereum.
Funcionament de l’aplicació Blockchain
Abans d’endinsar-nos en la creació d’una aplicació blockchain, provem d’entendre com funcionaria una aplicació blockchain..
Per entendre-ho, fem un cop d’ull al funcionament d’una aplicació senzilla. Qualsevol aplicació que funcioni a Internet es representa a l’ordinador de l’usuari mitjançant un navegador o una aplicació dedicada a Windows. En qualsevol cas, sol·licita al servidor les pàgines o la informació, que després es renderitza a l’ordinador de l’usuari.
En el cas de l’aplicació web, tot està centralitzat. Això sí que ofereix alguns avantatges; no obstant això, deixa molt a desitjar pel que fa a seguretat. Les aplicacions Blockchain funcionen de manera totalment diferent. Tot està descentralitzat, inclosos el codi i les dades que s’emmagatzemen a l’aplicació.
Contractes intel·ligents
La clau aquí és el contracte intel·ligent. Un contracte intel·ligent facilita la pròpia aplicació. Conté tot el codi que fa que l’aplicació funcioni. També automatitza el procés i garanteix que funcioni de la manera prevista. Al nostre tutorial, utilitzarem els contractes intel·ligents per escriure les diferents funcionalitats de la llista de tasques.
Els contractes intel·ligents utilitzen el llenguatge de programació Solidity. És similar a JavaScript. Un cop escrit un contracte intel·ligent, el seu codi es torna immutable i immutable. Podeu canviar el codi durant el desplegament. Tanmateix, un cop desplegada l’aplicació, no podreu canviar el codi. Això es fa per proporcionar confiança i seguretat a les aplicacions de blockchain. L’enfocament també significa que cal tenir molta cura i fer totes les proves abans de desplegar el contracte intel·ligent. A més, els codis de contractes intel·ligents tenen un caràcter públic.
Voleu aprendre a construir una cadena de blocs amb Python? Aquí teniu un tutorial per construir un blockchain amb Python que podeu seguir.
Creació de la nostra aplicació Llista de tasques de Blockchain
Per assegurar-vos que enteneu el concepte, primer heu d’aprendre com funcionarà l’aplicació Todo blockchain. Farem servir l’aplicació Ethereum. La nostra aplicació utilitzarà un sol node Ethereum i també tindrà una aplicació del client. Utilitzarem Solidity per escriure el contracte intel·ligent i després implementar-lo.
Com a desenvolupador, heu d’utilitzar una cartera Ethereum, que és fàcil de fabricar.
Preparació: creació d’entorns
Per crear un entorn local, necessitarem diverses eines i paquets. Anem a revisar-los un per un.
Ganache
Ganache és una eina de desenvolupament d’Ethereum. Us permet administrar, desplegar i desenvolupar aplicacions, contractes intel·ligents i proves. Executarem la versió de Windows per al tutorial. Si teniu un sistema operatiu diferent, també podeu descarregar la versió per a Mac o Linux. Un cop instal·lat, hauríeu de poder utilitzar-lo mitjançant l’eina de línia d’ordres.
Node.js
Node.js és la nostra pròxima eina que cal instal·lar. Per fer funcionar la cadena de blocs privada a la vostra màquina, heu d’instal·lar el fitxer Gestor de paquets de nodes.
Un cop instal·lat, obriu el terminal i escriviu l’ordre següent. Si funciona, és bo anar-hi.
$ node -v
Cartera MetaMask Ethereum
Com que treballarem a la cadena de blocs d’Ethereum, necessitem una cartera que funcioni des del navegador. Metamask és una cartera de navegador web que us permet interactuar amb la cadena de blocs d’Ethereum.
Marc de tòfona
L’últim programari que instal·larem és el Marc de tòfona. Ofereix un ampli conjunt d’eines que us permeten treballar eficaçment a la vostra dApp. Podeu utilitzar el llenguatge de programació Solidity per desenvolupar un contracte intel·ligent Ethereum.
Algunes de les funcions clau de Truffle Framework inclouen les següents
- Gestió adequada dels contractes intel·ligents
- Gestió de xarxes
- Proves automatitzades
- Consola de desenvolupament
- Script Runner
- Desplegament i migracions
- Desenvolupament del client.
Per instal·lar-lo, heu d’utilitzar el fitxer Comanda npm. Simplement executeu l’ordre següent a la línia d’ordres.
$ npm install -g [email protected]
La instal·lació trigarà una estona a finalitzar-se. Tingueu en compte també que heu d’instal·lar la versió exacta per seguir el tutorial.
Voleu convertir-vos en un professional expert en blockchain? Inscriviu-vos al nostre curs professional certificat de blockchain empresarial ara!
Configuració del projecte
Guai! Ara tenim el nostre entorn de desenvolupament a punt per utilitzar-se. Ara, tot el que hem de fer és crear el nostre projecte. Per fer-ho, hem de crear el directori del projecte. Fem-ho a continuació.
$ mkdir dapp-todo
$ cd dapp-todo
Un cop esteu a la carpeta, haureu d’iniciar el projecte de tòfona executant l’ordre següent.
$ tòfona init
Un cop fet, se us mostrarà un missatge com l’anterior. Això significa que la carpeta i els fitxers s’han creat correctament. Ara podeu obrir la carpeta al vostre editor de text preferit. Abans de fer-ho, heu de crear el fitxer package.json dossier. Això us ajudarà a instal·lar les dependències necessàries per al projecte.
Podeu crear manualment el fitxer i desar el contingut que es mostra a continuació.
{
“Nom”: “dapp-tot”,
“Versió”: “1.0.0”,
“Description”: “Llista de tasques basades en Ethereum”,
“Main”: “truffle-config.js”,
“Directoris”: {
“Prova”: “prova”
},
“Scripts”: {
“Dev”: “lite-server”,
“Test”: error “echo \”: no s’ha especificat cap prova \ ” && sexit 1 ″
},
“Autor”: “[email protected]”,
“Llicència”: “ISC”,
“DevDependencies”: {
“Bootstrap”: “4.1.3”,
“Chai”: “^ 4.1.2”,
“Chai-as-promise”: “^ 7.1.1”,
“Chai-bignumber”: “^ 2.0.2”,
“Lite-server”: “^ 2.3.0”,
“Nodemon”: “^ 1.17.3”,
“Tòfona”: “5.0.2”,
“Contracte de tòfona”: “3.0.6”
}
}
Un cop fet, ara executeu l’ordre següent per instal·lar les dependències.
Instal·lació de $ npm
Comprensió de l’estructura del directori
L’estructura de directoris es mostrarà a continuació.
Anem a entendre cada carpeta una per una.
- Contractes: El directori conté tots els contractes intel·ligents. El contracte migrations.sol gestiona les migracions a la cadena de blocs.
- Migracions: El directori de migració conté les dades de migració. És a partir d’aquí que es produeixen les migracions.
- mòduls_node: Conté tots els mòduls / dependències del node.
- Prova: Aquest directori conté els fitxers de prova.
- truffle-config.js: Aquest fitxer conté la configuració del projecte de tòfona.
Creació del contracte intel·ligent
Ara és hora que comencem per la nostra creació de contractes intel·ligents. Els nostres contractes intel·ligents s’emmagatzemaran a la carpeta de contractes. Creem un fitxer de contracte intel·ligent anomenat tot.sol
Un cop fet, ara haureu d’escriure el codi tal com es mostra a continuació.
solidesa del pragma ^ 0,5,0;
contracte Todo {
// Codi aquí
}
La primera línia de codi especifica quina versió de Solidity estem utilitzant per escriure el contracte intel·ligent. A continuació, hem d’utilitzar la paraula clau contract i crear un contracte Todo. Contindrà el codi del contracte intel·ligent.
Ara, afegim una variable per veure si tot funciona correctament.
solidesa del pragma ^ 0,5,0;
contracte Todo {
uint Tasques = 0;
}
Aquí definim la variable tasques que comptarà el nombre de tasques que tenim a la nostra aplicació Todo.
Connexió a Ganache
Amb el nostre contracte intel·ligent configurat correctament a Truffle, ara hem de connectar-nos a la cadena de blocs privada Ganache que hem creat. Per fer-ho, cal actualitzar alguns fitxers de configuració. També hem de crear un script de migració i executar-lo per poder connectar-nos a la xarxa personal de blockchain.
Per començar, hem d’actualitzar el fitxer truffle-config.json. Hauria de ser dins del directori principal del projecte. Un cop l’obriu, copieu-enganxeu el codi següent.
module.exports = {
xarxes: {
desenvolupament: {
amfitrió: “127.0.0.1”,
port: 7545,
network_id: “*” // coincidència d’identificador de xarxa
}
},
solc: {
optimitzador: {
activat: cert,
tirades: 200
}
}
}
Amb el fitxer truffle-config.js creat, ara és hora que creem l’escriptura de migració perquè el contracte intel·ligent que creem es pugui migrar a la xarxa personal de blockchain.
Arxivarem el nom com a 2_deploy_contracts.js
Les migracions són molt importants per a la nostra aplicació Todo. Com que blockchain és un tipus de base de dades, hem de canviar-la d’un estat a un altre. Aquí és on ajuden les migracions.
Per enllaçar els fitxers de migració, hem d’actualitzar l’addició del codi següent al fitxer de migració creat recentment.
var Todo = artifacts.require (“./ Todo.sol”);
module.exports = funció (desplegador) {
deployer.deploy (Tot)
}
La primera línia de codi simplement crea una variable que fa referència al nostre contracte intel·ligent. Un cop fet, el desplegem.
Un cop fet, ara, executem l’ordre migrate.
Migració de $ Truffle
També podeu executar la consola mitjançant l’ordre següent.
$ trufa consola
Desenvolupament de la nostra aplicació Todo List
Ara que hem executat amb èxit el nostre primer contracte intel·ligent Ethereum, ara és hora que afegim funcions al nostre dApp. La nostra dApp és senzilla. Enumerarà les tasques a la nostra llista de Todo. Hem d’utilitzar el contracte intel·ligent per aconseguir-ho.
Fem-ho a continuació.
solidesa del pragma ^ 0,5,0;
contracte Todo {
uint tasques públiques = 0;
tasca struct {
uint id;
contingut de cadenes;
bool completat;
}
}
Aquí hem utilitzat una paraula clau struct per crear una nova tasca struct. L’utilitzem per definir l’estructura de la nostra tasca, que conté l’identificador, el contingut i el valor booleà completat.
A continuació, ara hem de cartografiar la nostra estructura de tasques i fer-la pública perquè hi pugui accedir mitjançant la cadena de blocs. Per fer-ho, hem d’afegir la següent línia de codi.
El codi de contracte intel·ligent ara es veurà a continuació.
solidesa del pragma ^ 0,5,0;
contracte Todo {
uint tasques públiques = 0;
tasca struct {
uint id;
contingut de cadenes;
bool completat;
}
mapatge (uint => Tasca) tasques públiques;
}
Per últim, ara hem de crear una funció que gestioni les tasques.
funció createTask (string memory _content) pública {
taskCount ++;
tasks [taskCount] = Tasca (taskCount, _content, false)
}
La funció s’explica per si mateixa en la seva major part. Hem creat la funció perquè pugui comptar el nombre de tasques que es mostren a Todo dApp.
Finalment, hem de crear un constructor per inicialitzar la classe Todo.
constructor () públic {
createTask (“Aquesta és la nostra primera tasca”)
}
El nostre fitxer todo.sol ara hauria de ser el següent.
solidesa del pragma ^ 0,5,0;
contracte Todo {
uint tasques públiques = 0;
tasca struct {
uint id;
contingut de cadenes;
bool completat;
}
constructor () públic {
createTask (“Aquesta és la nostra primera tasca”)
}
mapatge (uint => Tasca) tasques públiques;
funció createTask (string memory _content) pública {
taskCount ++;
tasks [taskCount] = Tasca (taskCount, _content, false)
}
}
Crea tasques
També podem crear tasques al nostre Todo dApp. Per fer-ho, hem de crear un activador quan es creï una nova tasca. El nostre enfocament és crear un nou esdeveniment TaskCreated i després afegir-lo a la nostra funció createTask () existent.
TaskCreated de l’esdeveniment (
uint id;
contingut de cadenes,
bool completat
);
Ara, afegiu la línia següent a la funció createTask ().
emet TaskCreated (taskCount, _content, false);
Completar tasques
També es poden afegir tasques completant mitjançant l’esdeveniment. Heu d’afegir el següent esdeveniment al contracte Todo.
TaskCompleted de l’esdeveniment (
uint id,
bool completat
);
Perquè funcioni, també cal afegir una nova funció.
funció toggleCompleted (uint _id) public {
Memòria de tasques _task = tasks [_id];
_task.completed =! _task.completed;
tasks [_id] = _task;
emet TaskCompleted (_id, _task.completed)
}
Felicitats! Heu creat la vostra primera llista de dApp a la cadena de blocs Ethereum.
Nota final
Això també ens condueix al final del nostre tutorial sobre l’aplicació de blockchain. Així és com es crea una aplicació de blockchain de construcció des de zero.
A partir d’aquí, heu de provar correctament el contracte abans de migrar-lo finalment a la cadena de blocs. També podeu crear el frontal de l’aplicació i provar-la. Si no us interessa fer-ho, podeu activar la consola i accedir a les variables i la funció per provar les coses!
Però si encara no esteu al corrent de les implicacions del blockchain, us demanem que comenceu el nostre curs gratuït de blockchain per obtenir-ne més informació. Sense aprendre ni entendre com funciona, copsar el concepte de programació us serà molt difícil.