martes, 16 de enero de 2018

Empezando con el desarrollo de DApps en Ethereum



Como ya he comentado varias veces estoy haciendo un doctorado, no se me ocurrió otra cosa
que meterme en IoT + Blockchain y, como buena curiosa que soy, nada mejor para entender las
cosas que meterte en faena y poner a crear tus propias DAaps.

Primero ¿Que es una DApp?
DApp es el acrónimo para de Decentralized Application, no son ni más ni menos que
aplicaciones basadas en la tecnología Blockchain (para los que no entiendan bien
Blockchain, me apunto para la semana que viene un compendio de recursos para ellos).

Las características que toda DApp comparte son:
  • Open Source: Los cambios son consensuados. 
  • Descentralizada: Los datos son guardados en Blockchain (que es descentralizado por definición). 
  • Probada: Bitcoin usa PoW, Ethereum también aunque esta programado para finales de este año hacer un hibrido de PoW y PoS. Han de ser probadas. 
  • Incentivada: Cuando se validen ls transferencias, se han de incentivar. Aquí no estoy muy de acuerdo con que esto se aun punto general ya que si piensas en criptomonedas como IOTA (que tendrá pronto Smart Contracts) todas sus transacciones y validaciones son gratuitas. Pero por el momento dejemoslo como característica general. 

Resultado de imagen de blockchain


Ethereum diferencia entre tres tipos de aplicaciones:
  • Financieras: Manejan “cripto-dinero” de forma directa. 
  • Semi-financieras: Donde hay dinero en juego pero no es la finalidad principal. 
  • No financieras: Donde el dinero no es lo que importa aquí pone como ejemplo los sistemas de votación o gobierno descentralizado. Siempre que un minero procesa un Smart Contrat se mueve dinero (por el gas consumido para procesarlo) así que, no os engañeis, siempre hace falta tener ether de por medio. 
Bien, ya sabemos lo que queremos hacer: una DApp. Ahora, la pregunta que he visto por tantos rincones de la red ¿Por donde empiezo?
Una DApp no es diferente a cualquier otra aplicación, consta de dos partes:
  • Front: Lo bonito. Lo que ve el usuario. Aquí los lenguajes de desarrollo son libres, el front lo puedes hacer en lo que más te guste. Lo más habitual son front de tipo web (eso también influye en que MetaMask solo tiene soporte web hoy en día, pero lo explicaremos luego) pero aquí puedes sentirte libre de usar el lenguaje que quieras. 
  • Back: La conexión con Blockchain. Esta es la parte donde vais a poder ver la diferencia entre una APP y una DApp. Hasta ahora teníais un back con una BBDD (relacional o no, no vamos a entrar en eso) puede que para vuestra DApp siga haciendo falta una, pero el núcleo de vuestra información estará en la Blockchain. El factor único y diferencial es ese. Para esto necesitamos un lenguaje para poder interactuar con esa Blockchain. El lenguaje más utilizado para ello es Solidity. 
Con Solidity vamos a poder:
  • Interactual con la Blockchain 
  • Crear Smart Contracts 
  • Crear nuestra ICO (que no es más que otro Smart Contract) 

Con esos tres puntos ya lo tienes todo. Entendiendo que es una DApp, que partes la forman, que lenguajes necesitas y que puedes hacer con Solidity. Ya te puedes adentrar a estudiar sobre el mismo y ver ejemplos.
Mis recomendaciones.

MOOCs:
Ethereum Developer MasterClass: https://www.udemy.com/ethereum-masterclass/learn/v4/overview

1 comentario: