scieee Open visual document viewer

Committee Manager APP: una aplicación para la gestión de comités dentro de organizaciones autónomas descentralizadas

Colombo Dos Santos, Paulo José

Abstract

El presente trabajo describe y detalla el proceso de diseño y desarrollo de Committee figuraManager, una aplicación para DAOs (Organizaciones Autónomas Descentralizadas) desarrolladas utilizando el proyecto Aragon, cuyo propósito es la creación y gestión de comités dentro de estas, siendo posible crear, eliminar o configurar las propiedades de cada comité. El objetivo de Committee Manager es facilitar la realización de los procesos, funciones y operaciones propias de una DAO, como por ejemplo: la admisión de nuevos miembros, el pago a proveedores o servicios ofrecidos por terceros, etc. Las responsabilidades se dividen en comités, que son un subgrupo de entidades (usuarios y contratos inteligentes) que pertenecen a la DAO, y poseen permisos especiales (ya sea a título individual o por acuerdo con los demás miembros del comité) para realizar ciertas acciones dentro de la DAO. La aplicación ha sido desarrollada utilizando las herramientas ofrecidas por el proyecto de código abierto Aragon, una iniciativa que pretende facilitar el desarrollo y creación de DApps, principalmente DAOs. El fundamento tecnológico principal del proyecto es Ethereum, plataforma en la cual, mediante el desarrollo de contratos inteligentes con Solidity, podemos crear y publicar las DAOs a la blockchain. Por otro lado, Aragon utiliza la librería React para el diseño y creación de la UI de las aplicaciones o módulos que se desarrollen para las DAOs.

Full text

COMMITTEE MANAGER APP: UNA APLICACIÓN PARA LA GESTIÓN DE COMITÉS DENTRO DE ORGANIZACIONES AUTÓNOMAS DESCENTRALIZADAS PAULO J. COLOMBO GRADO EN INGENIERÍA DEL SOFTWARE UNIVERSIDAD COMPLUTENSE DE MADRID TRABAJO FIN DE GRADO 20/09/2019 Di ec o : Same Hassan Collado y Da id Llop Vila Au o izo a la Uni e sidad Complu ense de Mad id a di undi y u iliza con ines académicos mencionando exp esamen e a su au o , an o la p opia memo ia, como el código, la documen ación y/o el so wa e desa ollado. Paulo J. Colombo 1 Es e documen o se dis ibuye bajo la licencia C ea i e Commons BY-SA 4.0. Us ed es lib e de: ● Compa i  - copia y edis ibui el ma e ial en cualquie medio o o ma o. ● Adap a - emezcla , ans o ma y c ea a pa i del ma e ial pa a cualquie inalidad, incluso come cial. Bajo las condiciones siguien es: ● Reconocimien o — Debe econoce adecuadamen e la au o ía, p opo ciona un enlace a la licencia e indica si se han ealizado cambios. Puede hace lo de cualquie mane a azonable, pe o no de una mane a que sugie a que iene el apoyo del licenciado o lo ecibe po el uso que hace. ● Compa i Igual — Si emezcla, ans o ma o c ea a pa i del ma e ial, debe á di undi sus con ibuciones bajo la misma licencia que el o iginal. h ps://c ea i ecommons.o g/licenses/by-sa/4.0/legalcode 2 AGRADECIMIENTOS Quisie a ag adece a mi u o Same Hassan Collado po pe mi i me o ma pa e de es e abajo de in de g ado y a Da id Llop Vila po su excelen e di ección del p oyec o y po da un 110% de sí y ayuda me en aquellos momen os en los que el desa ollo del p oyec o pa ecía llega a un impasse. Po úl imo, quisie a ag adece a la comunidad de desa ollado es de A agon po esol e la g an can idad de dudas que u e a lo la go de es os 3 meses y po p omo e el desa ollo de un amewo k ex ao dina io. 3 4 ÍNDICE RESUMEN 8 ABSTRACT 9 INTRODUCCIÓN 10 INTRODUCTION 12 MOTIVACIONES 14 ¿Po qué A agon? 14 ESTADO DEL ARTE 16 Bi coin y el concep o de blockchain 16 E he eum y la siguien e gene ación de blockchain 17 DAOs: Un uso de la ecnología blockchain con po enciales epe cusiones 19 The DAO 21 Pla a o mas y amewo ks pa a el desa ollo de DAOs 22 DAOS ack 22 Colony 26 A agon 29 Un is azo al pano ama ac ual de las DAOs 30 dxDAO 30 Make DAO 31 Te a0 32 PolkaDAO 33 METODOLOGÍA Y ORGANIZACIÓN 34 Fases de abajo 34 Me odología de desa ollo so wa e 34 Tecnologías u ilizadas 38 A agon 39 A agonOS 40 A agonPM (Package Manage ) 43 A agonAPI 44 A agonCLI (Command Line In e ace) 45 A agonUI 45 Templa es de A agon 46 Me amask 47 Solidi y 47 Remix 49 Reac 50 DESARROLLO DE PROTOTIPOS: UN PRIMER ACERCAMIENTO 53 5 Bu ge Builde : Una aplicación hecha con Reac 53 Implemen ación 54 Conclusión 57 COMMITTEE MANAGER: UN GESTOR DE COMITÉS PARA DAOs CREADAS CON ARAGON 59 Especi icación 61 Requisi os uncionales 61 Requisi os no uncionales 69 Tipos de Usua io 69 Casos de uso 70 Diseño gene al de la aplicación: Mockups 70 Implemen ación 75 Es uc u a p incipal 75 Sma Con ac s 76 Backg ound Sc ip 82 Vis a 83 Ejemplos de uso 87 C eación de un comi é 87 Ve de alles de un comi é 90 Eliminación de un comi é 91 Añadi nue o miemb o a un comi é 92 Elimina miemb o de un comi é 94 Desca ga y ejecución del código 94 CONCLUSIONES 98 CONCLUSION 99 TRABAJO FUTURO 100 BIBLIOGRAFÍA 101 6 7 RESUMEN El p esen e abajo desc ibe y de alla el p oceso de diseño y desa ollo de Commi ee igu aManage , una aplicación pa a DAOs (O ganizaciones Au ónomas Descen alizadas) desa olladas u ilizando el p oyec o A agon, cuyo p opósi o es la c eación y ges ión de comi és den o de es as, siendo posible c ea , elimina o con igu a las p opiedades de cada comi é. El obje i o de Commi ee Manage es acili a la ealización de los p ocesos, unciones y ope aciones p opias de una DAO, como po ejemplo: la admisión de nue os miemb os, el pago a p o eedo es o se icios o ecidos po e ce os, e c. Las esponsabilidades se di iden en comi és, que son un subg upo de en idades (usua ios y con a os in eligen es) que pe enecen a la DAO, y poseen pe misos especiales (ya sea a í ulo indi idual o po acue do con los demás miemb os del comi é) pa a ealiza cie as acciones den o de la DAO. La aplicación ha sido desa ollada u ilizando las he amien as o ecidas po el p oyec o de código abie o A agon, una inicia i a que p e ende acili a el desa ollo y c eación de DApps, p incipalmen e DAOs. El undamen o ecnológico p incipal del p oyec o es E he eum, pla a o ma en la cual, median e el desa ollo de con a os in eligen es con Solidi y, podemos c ea y publica las DAOs a la blockchain. Po o o lado, A agon u iliza la lib e ía Reac pa a el diseño y c eación de la UI de las aplicaciones o módulos que se desa ollen pa a las DAOs. Palab as cla e: A agon, Blockchain, O ganizaciones descen alizadas au ónomas, E he eum, Reac , Sma Con ac , Solidi y, DAO. 8 OBJETIVOS El p incipal obje i o de es e abajo es inco po a al epe o io de A agon una aplicación que acili e la ges ión de las ope aciones de la DAO y pe mi a lexibiliza la dis ibución de esponsabilidades. Se busca c ea una aplicación que complemen e siné gicamen e a o as , como Vo ing oTokenManage  , y amplíe los modelos de gobe nanza que se puedan llega a implemen a . No es una solución inal ni acabada y es á abie a a modi icaciones, mejo as y e oques. O as inalidades que se espe aba cumpli con el desa ollo del p esen e abajo son las siguien es: 1. Ab i las pue as a posibles u u os desa ollos u ilizando A agon. 2. Es ablece un en oque eal al desa ollo de p oyec os blockchain explo ando las posibilidades de ecnologías inno ado as como Solidi y, E he eum o incluso Reac . 3. Desa olla una aplicación que pueda se u ilizada o mejo ada po la comunidad incluso después de habe e minado el TFG. Se espe a que el código desa ollado en es e TFG cons i uya la pied a angula de una aplicación que pe mi a segmen a las esponsabilidades y dis ibui las en e una se ie de g upos especializados. 15 ESTADO DEL ARTE Bi coin y el concep o de blockchain En oc ub e de 2008, Sa oshi Nakamo o publicó una p opues a donde plan ea c ea un p o ocolo llamado Bi coin sob e una ed P2P con la inalidad de ans e i alo , ep esen ado po una c ip omoneda llamada bi coin, de un pun o a o o de la ed, sin necesidad de in e ac ua con e ce as pa es, como pueden se bancos, pla a o mas de in e ne u o as ins i uciones. El p o ocolo p opone una solución al an iguo p oblema humano de la con ianza, al ga an iza a odos los ac o es que o man pa e de la ed que pueden con ia en los esul ados p oducidos po és a sin necesidad de con ia unos en los o os o siquie a conoce se. El p o ocolo Bi coin es la con e gencia de es impo an es campos que han expe imen ado un signi ica i o desa ollo a lo la go de las úl imas décadas: 1. Redes: El p o ocolo Bi coin ope a sob e edes P2P, con o mada po nodos iguales en e sí en la que no hay se ido es o clien es ijos. 2. Teo ía de juegos: Los algo i mos que de e minan la o ma en que se ecompensan, cas igan y elacionan los pa icipan es de la ed se undamen an en p incipios y concep os de es e campo de la ma emá ica aplicada. 3. C ip og a ía: La segu idad de la ed y el p o ocolo, desde el almacenamien o de los da os o el aspaso de paque es de in o mación en e nodos, se apoya comple amen e en écnicas y mé odos c ip og á icos. Como se ha comen ado p e iamen e, la ed si e de medio pa a ans e i bi coins en e los ac o es que o man pa e de la misma. No malmen e, a es as ans e encias de dine o se les suele llama ansacciones. La ed lle a un egis o de odas las ansacciones que se han hecho en la ed desde su c eación. Pa a ello, Bi coin se apoya ue emen e en la blockchain, una ecnología inno ado a que ha p esen ado soluciones a g andes p oblemas en el campo de las edes P2P como el del doble gas o [5]. La ecnología blockchain se puede desc ibi como una es uc u a de da os con o mada po ansacciones alidadas po la ed en algún pun o del pasado, que se ag upan en bloques donde cada uno se conec a con el an e io de mane a que se o ma una lis a enlazada comúnmen e denominada cadena de bloques. Es a cadena se encuen a p o egida c ip og á icamen e de al mane a que ningún ac o de la ed puede modi ica o co ompe la cadena de bloques sin que el es o de pa icipan es se den cuen a. Es e hecho es el ga an iza la comple a con ianza en el sis ema sin ene que con ia en sus pa icipan es. Den o de la ed, cada nodo pa icipan e gua da una copia de la úl ima e sión de la cadena de bloques. Al no eque i de e ce os, la ed alida sus p opias ansacciones pa a se 16 inco po adas a la cadena. La ed emplea un algo i mo de consenso llamado P oo o Wo k (PoW), u o de una mezcla en e incen i os económicos y c ip og a ía, que o ece incen i os económicos en o ma de bi coins pa a mo i a a los nodos a alida e inco po a las nue as ansacciones a la cadena de bloques. Pa a selecciona al p óximo nodo alidado se p opone un juego ma emá ico que deben esol e odos y cada uno de los nodo u ilizando su pode de cómpu o pa a encon a la solución po ue za b u a. Los algo i mos de consenso mejo an la ed, haciéndola ole an e a allos o a aques y esis en e a colusiones al p opone un con ex o donde es económicamen e in iable sabo ea y engaña al sis ema. Figu a 1. Cadena de bloques E he eum y la siguien e gene ación de blockchain No u o que pasa mucho iempo después de la publicación de Bi coin pa a e el po encial de ás de la ecnología blockchain, o iginalmen e diseñada pa a abaja en una ed P2P con ansacciones de c ip omonedas. Los desa ollado es se die on cuen a que las ansacciones podían con ene o o ipo de alo . Ademas, el lenguaje de sc ip ing de Bi coin e a muy ce ado, poco exp esi o y len o a la ho a de inco po a nue os cambios sin ác icos. A aíz de es as limi aciones nace el p oyec o E he eum, una pla a o ma de código abie o descen alizada desa ollada a mediados de 2014 y lanzado o icialmen e el 30 de julio de 2015. La p incipal ca ac e ís ica de E he eum la podemos e si p es amos a ención al s ack de ecnologías de es e: 17 Figu a 2. S ack de ecnologias de E he eum [4] O iginalmen e u ilizados en la capa de blockchain pa a desencadena ansacciones au omá icas sob e la cadena de bloques una ez cie as condiciones se haya cumplido, los sma con ac s son ecolocados en la capa de aplicación de E he eum desacoplándolos po comple o de la blockchain con la inalidad de es ablece un en o no de desa ollo pa a los sma con ac s mucho más amplio y lexible que aquel de inido en Bi coin. Los sma con ac s se pueden de ini como ozos de código au oejecu ables que se despliegan sob e una ed blockchain cuya inalidad es la de con ola ac i os digi ales almacenados en la cadena y ejecu a ansacciones si cie as no mas a bi a ias p og amadas se cumplen. La p incipal en aja de los con a os es que educe el cos e ansaccional de : 1. Alcanza un acue do en e las pa es in oluc adas. 2. Fo maliza el acue do en e ambas pa es. 3. Aplica el con a o una ez las condiciones de inidas se hayan cumplido. El ango de aplicaciones de los sma con ac s puede se bas an e amplio, algunos de los casos de uso que podemos lis a son: 18 ● Ejecu a ansacciones simples de ans e encia de dine o en e una cuen a A y o a cuen a B. ● Regis o de pa en es. Un caso eal es el de la pla a o ma Be ns ein que o ece 1 se icios blockchain pa a el egis o p opiedad in elec ual ● Regis o de documen os gube namen ales o semi gube namen ales , como pueden 2 se : ce i icado de nacimien o, documen os de p opiedad, ce i icados académicos, e c. ● P omo o de la economía colabo a i a, al pe mi i la ep esen ación c ip og á ica de bienes o se icios, en oposición a su análogo digi al, que puedan se in e cambiados. ● C eación y ges ión de okens c ip og á icos que puedan ep esen a ac i os, de echos de acceso o incen i os. Un ejemplo pod ía se la pla a o ma S eemi , que o ece okens p opios de la ed pa a incen i a a los usua ios a con ibui con con enido DAOs: Un uso de la ecnología blockchain con po enciales epe cusiones El a ance de la ecnología blockchain, los con a os in eligen es y los okens ha cons i uido un caldo de cul i o pa a odo ipo de desa ollos e inicia i as. Las DAOs con o man uno de los casos de uso más ele an es hoy en día, con un po encial dis up i o den o de las es uc u as o ganiza i as los modelos de gobe nanza adicionales ac uales. A g andes asgos, podemos de ini una DAO como un ipo de o ganización donde la o ma de gobe nanza que implica ac i idades como la asignación y almacenamien o de ecu sos, in e acción en e pa icipan es, mecanismos de consenso y o ación, e c; se codi ican u ilizando con a os in eligen es que esiden en E he eum, lo que compo a anspa encia de los p ocesos de la o ganización y el ace camien o de pa icipan es que no con ían en e si. Podemos de ini las siglas de la siguien e mane a: 1. Decen alized: Al ope a sob e una ed apoyada en blockchain, ninguna en idad puede con ola la DAO, po lo que se e i a cualquie pun o cen al de allo. 2. Au onomous: Se e ie e al hecho de que la DAO puede oma decisiones sin necesidad de que sea ges ionada po en idades ges o as como la adminis ación o la di ección. 3. O ganiza ion: La ecnología ope a sob e un conjun o de indi iduos o en idades con una inalidad común. 1 h ps://www.be ns ein.io 2El aspec o legal y egula o io de es e caso uso p esen a se ias di icul ades pa a su implemen ación que deben se e aluadas. 19 Las p incipales en ajas que o ecen las DAOs son las siguien es: 1. Reduci los e ec os del p oblema del agen e-p incipal . 3 2. Desin e media y educi cos es bu oc á icos y de ges ión al incen i a a odos los pa icipan es de la o ganización po medio de okens na i os y alinea sus in e eses pe sonales con el in e és global. 3. Sus i ui el mecanismo eac i o de segu idad egulados po los sis emas legales ac uales po mecanismos au omá icos p oac i os egulados po código. Las DAOs p esen an un g an con as e con las o ganizaciones adicionales: Figu a 3. O ganizaciones adicionales e icales s DAOs [3] Las o ganizaciones adicionales suelen es a di ididas en múl iples capas de di eccion y ges ion que es an dispues as de o ma je a quizada. Su obje i o es coo dina y omen a la aplicación de los p ocesos y las ope aciones de la o ganización. Pa a ello, g an pa e del iempo ienen que comunica se bidi eccionalmen e con las capas adyacen es pa a ansmi i in o mación pe inen e y oma decisiones. El p incipal p oblema es que es e p oceso suele se len o, cos oso y puede degene a en cuellos de bo ella en algunas pa es de la o ganización. 3Un an iguo p oblema de gobe nanza donde el agen e de una o ganización iene el pode de oma decisiones en nomb e del p incipal, o a pe sona o en idad de la misma o ganización , y que ienen consecuencias sob e es os. Exis e oda clase de iesgos mo ales ya que el agen e puede llega a oma decisiones a la lige a, sabiendo que las consecuencias de es a a ec an a o as pe sonas. 20 Po úl imo, pa a ene una idea comple a sob e las DAOs se deben comen a las incon eniencias y p oblemas que p esen an a dia de hoy: 1. Ac ualmen e, los aspec os legales de las DAOs siguen siendo ma e ia de discusión. Toda ía no hay una legislación que egula ice es a clase de o ganizaciones. 2. Muchos aspec os elacionados con las DAOs siguen sin en ende se comple amen e y muchos la conside an una idea abs ac a. Aunque du an e los úl imos años han su gido di e sas inicia i as, oda ía se conside a que ha habido pocas aplicaciones de es e ipo de o ganización. 3. Las DAOs son an e icien es y segu as como lo pe mi a el código hecho po los desa ollado es. Uno de los ejemplos más ep esen a i os que ilus a los pun os p e iamen e desc i os es The DAO, de la cual habla emos a con inuación. The DAO The DAO se puede conside a uno de los acon ecimien os más ele an es den o de la his o ia de las DAOs. Consis ió en un ondo de in e sión de capi al de iesgo c eado en 2016 po miemb os de la comunidad de E he eum como Ch is oph Jen zsch, su he mano Simon Jen zsch o S ephan Tual; con la ayuda del equipo de desa ollo Slock.i. La idea e a desa olla una o ganización implemen ada con con a os in eligen es p o is a de una ges ión au ónoma de las in e siones y los ondos donde la pa icipación de ges o es de in e sión ue a innecesa ia. The DAO ab ió un pe iodo de en a de okens que u o una du ación de cua o semanas, en la que los in e esados podia ans e i una can idad de E he a una cuen a de e minada a cambio de okens DAO. Se espe aba acumula un ondo común donde cada pa icipan e ue a cop opie a io de la DAO y u ie a de echos de o ación en las decisiones de in e sión p opo cional a la can idad de okens poseídos. Cualquie pa icipan e podía p esen a p opues as de p oyec os al es o de la o ganización que e an some idos a o ación pa a decidi una posible inanciación La en a de okens ue un o undo éxi o al llega a acumula un o al de 150 millones de dóla es (al ededo de 12.7 millones de E he en ese momen o). Sin emba go, a mediados de junio de 2016, un hacke encon ó un e o en el código de la DAO g acias al cual llegó a oba al ededo de 70 millones de dóla es de los ondos que ans i ió a una cuen a pe sonal. Pa a sanea los daños, E he eum eembolsó el dine o obado a los pa icipan es ealizando un ha d o k de la pla a o ma pa a ans e i el dine o a una cuen a común a la que los 4 pa icipan es u ie an acceso. 4 Una bi u cación del código de la blockchain donde la nue a e sión es incompa ible con la an igua, siendo imposible comunica ambas. 21 Es e suceso supuso el inal de The DAO a medida que pla a o mas de in e cambios y se icios de ading como Poloniex o K aken excluían los okens DAO de sus lis as de monedas digi ales. O a consecuencia de g an impo ancia ue la di isión de la comunidad de E he eum en dos g upos. Es o desembocó en la apa ición de dos pla a o mas de E he eum: aquella que inco po ó el o k y la que se conoce como E he eum Classic que no acep ó el o k po conside a que iba en con a de los p incipios de inmu abilidad de blockchain. Pla a o mas y amewo ks pa a el desa ollo de DAOs En los úl imos años, han su gido dis in as inicia i as y p oyec os que han in en ado o maliza la me odología de desa ollo de las DAOs y modula iza su cons ucción. Veamos las más impo an es. DAOS ack DAOS ack se puede de ini como una pla a o ma de código abie o publicada en la p ima e a de 2018, que cons i uye un amewo k pa a el desa ollo de dApps, especí icamen e DAOs, cuyo obje i o p incipal se cen a en la descen alización de la oma de decisiones de es as. De acue do a DAOS ack, los p oblemas más impo an es en el desa ollo de las DAOs ac ualmen e adican El ecosis ema de DaoS ack es á con o mado po múl iples DAOs in e ope ables que pueden llega a in e ac ua en e sí, al pode comunica se con o as o ganizaciones las DAOs pueden pa icipa en o aciones de o as, ansmi i da os de in e és, o ece se icios, e c. Es a ac i idad maximiza el po encial bene icio p oceden e de la colabo ación abie a y dis ibuida. La c eación, con igu ación y despliegue de es as o ganizaciones y sus modelos de gobe nanza se apoya en una se ie de he amien as undamen ales a disposición del desa ollado ideadas y desa olladas po la pla a o ma. DAOS ack se o ganiza de la siguien e mane a: 22 Figu a 4. S ack de ecnologías de DAOS ack [4] 1. E he eum: Cons i uye la capa más baja. Sob e es a ed se ejecu an odos los módulos de DaoS ack implemen ados como con a os in eligen es. 2. A cHi es: Capa que con iene un conjun o de egis os diseñados pa a mejo a la in e ope abilidad en e DAOs. Se encuen an es egis os p incipales: a. Compendium: Es os egis os se pueden e como una especie de “app s o e” donde miemb os de la comunidad de DAOS ack pueden publica nue os módulos o elemen os de gobe nanza a cos a de paga una can idad de okens. Cada ez que una DAO u iliza el módulo publicado, el au o ecibe un po cen aje de okens como ecompensa. b. The Hi e: Con iene un lis ado de o e as y pe iciones de ecu sos o alen o de las DAOs de la pla a o ma. Se busca euni miemb os de di e en es DAOs que puedan supli las necesidades de o os de DAOs dis in as. c. Mosaic: Con iene un lis ado de me ada os de odas las DAOs de la pla a o ma. 3. A c: F amewo k de código abie o, modula y de uso gene al que pe mi e el desa ollo de la es uc u a del modelo de gobe nanza de la DAO. O ece una lib e ía compues a po módulos o elemen os que podemos selecciona y combina pa a con igu a el p o ocolo de gobe nanza deseado pa a la DAO. También exis e la posibilidad de c ea nue os módulos. A con inuación, podemos obse a una a qui ec u a con encional que puede adop a el A c den o de una DAO: 23 Figu a 5. A qui ec u a del amewo k A c [4] El núcleo del amewo k eside en el con olado , un con a o que se enca ga de pone en con ac o a los agen es (Agen s), ep esen ados po di ecciones de E he eum, con los ac o es (Ac o s), que cons i uyen con a os que implemen an algún componen e del modelo de gobe nanza, como po ejemplo el ges o de okens (Tokens), ondos (Funds) o epu ación (Repu a ion). La mane a en que los agen es se comunican es po medio de los esquemas (schemes) susc i os al con olado , que ac úan a modo de unciones que pueden se in ocadas a a és de la emisión de ansacciones que llegan al con olado y ocasionan el en ío de ó denes a los ac o es po pa e de es e. Hay que ene en cuen a que pa a pode comunica se con los esquemas, muchas eces una o ación debe se ap obada en la que pa icipan o os agen es de la DAO. Po úl imo, el con olado ambién posee mecanismos pa a ac ualiza se al ans e i el con ol sob e odos los ac o es que posee a una nue a di ección que puede se un nue o con olado ac ualizado que ha emodelado la a qui ec u a o uno comple amen e dis in o. 4. A c.js: Es una lib e ía de Ja aSc ip desa ollada sob e Web3.js que abs ae al 5 desa ollado de la es uc u a del amewo k A c y del lenguaje Solidi y en el que es á implemen ado, pe mi iendo llama a uncionalidades del amewo k desde el F on -End. 5 Una API de E he eum desa ollada en Ja aSc ip . 24 dxDAO es una DAO desa ollada u ilizando el amewo k DAOS ack cuyo lanzamien o 10 ocu ió a inales de mayo de 2019. El obje i o de es a DAO consis e ges iona y coo dina el desa ollo y despliegue de p o ocolos o pla a o mas de come cio sob e E he eum. Ac ualmen e ges iona Du chX, p o ocolo en ocado al come cio e in e cambio de okens ERC20 empleado un mecanismo basado en la subas a holandesa , pe mi iendo 11 12 come cializa okens con baja liquidez y sin necesidad de in oluc a a e ce os. dxDAO se enca ga de coo dina la comunidad de ás del desa ollo de Du chX u ilizando la in aes uc u a de DAOS ack y el mecanismo de holog a ico de consenso de DAOS ack acili ando la oma de decisiones en asun os como: ● Ac ualizaciones de la lógica de los con a os in eligen es. ● Ges iona la lis a de okens pe mi idos pa a come cializa ● Cambios en la es uc u a o ganiza i a y con ibu i a de la DAO. ● E ec ua cambios necesa ios pa a cumpli con nue os equisi os legales o egula o ios. Los pa icipan es de la DAO son ecompensados con mayo pode de o ación y epu ación si come cian u ilizando Du chX, bloquean los okens ERC20 que posean o pujan po okens GEN20 ( oken de DAOS ack). Make DAO Make DAO es una DAO con o mada po a ios con a os in eligen es que ges iona y con ola DAI S ablecoin, una c ip omoneda es able que cons i uye una al e na i a al uso de c ip omonedas al amen e olá iles como E he o Bi coin que se ca ac e izan po una luc uación del p ecio desmesu ada. Make DAO se enca ga de espalda y es abiliza DAI bajo el p ecio del dóla , u ilizando sis emas dinámicos de deuda ga an izada o CDP, mecanismos de e oalimen ación au ónoma y ac o es ex e nos incen i ados Los CDP ac úan como mecanismos inancie os que nos pe mi en gene a DAIs siemp e y cuando o ezcamos un ac i o cola e al como ga an ía, que es Pooled E he (PETH) . Al 13 gene a las DAIs, c eamos deuda que le indica al CDP que debe bloquea el acceso al ac i o has a que p esen emos una can idad de DAI equi alen e a la deuda inicial más una 10 h ps://dxdao.daos ack.io/ 11 Tipo de okens que implemen an la in e az ERC20 que busca es anda iza el o ma o de los okens u ilizados den o de la ed E he eum. 12 Tipo de subas a en el que el p ecio del p oduc o empieza a subas a se con un al o p ecio que es g adualmen e ebajado has a que algún pa icipan e comp e el p oduc o 13 Un ipo de E he que se ecibe cuando se deposi an E he con encional en un con a o que ecoge odo el E he deposi ado po odos los usua ios de Make DAO. Se u iliza como mecanismo p e en i o en caso de que el p ecio del E he colapse. 31 pequeña cuo a de es abilidad que debemos paga po los se icios o ecidos. Una ez, la deuda es é saldada el usua io es lib e de e i a an o ac i o cola e al como quie a. Make DAO hace uso de los okens MKR, que ac úan como okens de gobe nanza que se epa en en e los pa icipan es de la DAO. Se u iliza pa a el pago de las cuo as de es abilidad y una ez u ilizado se des uye Los poseedo es de okens MKR ienen la posibilidad de pa icipa en o aciones en las que se suelen a a p opues as como : ● Modi icación de a iables de ges ión in e na de gobe nanza de la DAO. ● Elección de los o áculos y nodos que se an a u iliza . ● Modi icación y con ol de los pa áme os de iesgo, como puede se : a io de liquidación, penalidad de liquidación, lími e de deuda pe mi ida, cuo a de es abilidad o a io de penalidad. ● Cie e de la DAO en caso de que ocu a un  lash c ash del p ecio del E he 14 Make DAO es uno de los p oyec os más exi osos cons uidos sob e la pla a o ma E he eum. Ac ualmen e posee 2% del E he o al de E he eum, p esen a un inc emen o del 20% en é minos del DAI emi ido mensualmen e y al ededo de 71% de los usua ios de uel e el DAI que han adqui ido en un co o pe iodo de iempo, lo que indica que su uso especula i o es bajo [16]. Te a0 Te a0 es un p oyec o en e apas muy emp anas de desa ollo c eado po Paul Seidle , 15 Paul Kolling y Max Hampshi e en la Uni e sidad de A es de Be lín que busca explo a las posibilidades de que una en idad no humana p o is a de IA (In eligencia A i icial), cons i uya una unidad económica au ónoma capaz de p oduci capi al po sí misma al unciona como una DAO y sin necesidad de in e ención humana, aliéndose de un sis ema na u al pa a sus en a se a sí mismo económicamen e y expandi se. La idea es desa olla un con a o in eligen e alojado en la ed E he eum que con ole la en ada y salida de da os de una en idad, que llama emos NHA (Non-human ac o ), que ep esen a un pedazo de ie a. El con a o implemen a á modelos económicos y lógica que pe mi a el análisis o es al pa a la explo ación de la ie a. Se p e ende comp a un ozo de bosque en Alemania que pueda se ges ionado po el NHA . Cada 6 meses, un p og ama de análisis o es al se conec a con una API de algún p o eedo pa a ob ene imágenes sa eli ales del bosque. U ilizando lib e ías como OpenCV se busca ex ae in o mación de es as imágenes pa a de e mina el núme o, es ado y 16 14 Mo imien o muy ue e y epen ino en la co ización de un ac i o conc e o. 15 h ps:// e a0.o g/ 16 Biblio eca lib e de isión a i icial u ilizada pa a el p ocesamien o de imágenes. h ps://openc .o g/ 32 edad de los á boles localizados den o de la p opiedad. El con a o accede a es os da os pa a de e mina qué y cuán os á boles es posible ende po medio de la comp a de licencias pa a el alado, sin pone en pelig o el a io de c ecimien o de la población gene al de á boles. Las licencias se implemen an u ilizando un oken llamado Wood oken que puede se adqui ido a cambio de E he . La can idad de Wood oken disponible y el p ecio de es os se ecalcula dos eces al año de acue do a los cálculos de los á boles disponibles. Pa a pone en ma cha la DAO, se o ganiza á una ase inicial de adquisición de ondos median e la emisión de okens  e a0 a cambio de E he . El oken ac úa como una especie de obligación inancie a capaz de e ende se a la DAO en el u u o. Es a e apa si e pa a do a a la DAO de E he que pueda u iliza pa a empeza a ope a . Una ez la DAO haya acumulado su icien e can idad de E he paga á a los in e so es iniciales y se con e i á en una unidad económica independien e. PolkaDAO PolkaDAO es una DAO desa ollada u ilizando DAOS ack publicada a inales de ab il de 2019, cuyo obje i o consis e en la ges ión del p o ocolo Polkado y la ges ion y inanciacion p oyec os pequeños ela i os a es e que no supe en una inanciación mayo a 1000 dóla es. Polkado es una ecnología he e ogénea y mul icadena que, po medio de una cadena de bloques cen al llamada  elay chain  , p e ende pe mi i la comunicación en e es uc u as de da os globalmen e cohe en es y alidables denominadas pa achains (cadenas pa alelas). Se busca c ea una espacio donde puedan coexis i cadenas de bloques que p ocesan ansacciones con ca ac e ís icas po encialmen e di e en es ya sean p i adas p opias de una o a ias emp esas o públicas como Bi coin, E he eum o Namecoin. Dos ac o es cla es de las cadenas de bloque que Polkado p e enden abo da son: la in e ope abilidad y la escabilidad. El amewo k busca abs ae dos componen es i ales de las cadenas de bloque: la ansición de es ado y el mecanismo de consenso. La ansición de es ado se e ie e al mecanismo que emplea la cadena de bloque pa a pasa de un es ado an iguo a uno nue o y el mecanismo de consenso a la o ma en que se p opaga el nue o es ado a lo la go de los nodos de la ed. Polkado ambién se ale de un oken in e no llamado DOT que si e de incen i o pa a los ac o es que o man pa e de la es uc u a in e na del amewo k que lle an a cabo los p ocesos de alidación y au en icación. Los poseedo es ambién pueden pa icipa en las o aciones elacionadas con la inanciación de los p oyec os de desa ollo o con aspec os del p o ocolo del amewo k. 33 METODOLOGÍA Y ORGANIZACIÓN En el p esen e apa ado se p ocede á a explica y de alla la me odología de abajo empleada, las o mas de abo da y en oca los obje os de es udio y las écnicas o ganiza i as u ilizadas en la elabo ación de plani icación, dis ibución de a eas y ges ión de iesgos. También se desc ibi án la ecnologías u ilizadas en el p oyec o, p o undizando en aquellas que se conside en más impo an es pa a en ende mejo el abajo. Fases de abajo La ealización del p oyec o se puede segmen a en es ases de desa ollo: 1. Fase de ap endizaje y ace camien o a las ecnologías: Es a ase u o una du ación ap oximada de dos meses. Consis ía en un ace camien o a las ecnologías in oluc adas pa a adqui i cie a sol u a con es as du an e el desa ollo de so wa e. Se ealiza on dos cu sos de ap endizaje de la pla a o ma Udemy: uno de Reac [18] y o o de Solidi y [19]. Se o ganiza on sesiones eó icas que se ealizaban es eces a la semana y enían acompañadas de eje cicios y pequeñas p ác icas donde se ealizaban aplicaciones de jugue e pa a asen a los conocimien os ap endidos. Du an e es a ase no se conce a on euniones con los u o es, y odo con ac o con ellos ocu ía a a és de co eo elec ónico o Teleg am pa a a a alguna duda ela i a a la ecnología es udiada du an e ese momen o. 2. Fase de diseño y plani icación: La ase de diseño u o una du ación ap oximada de dos semanas. Se ealiza on dos euniones con el u o , donde se discu ió sob e el diseño an o del F on -End como del Back-End. En cuan o al F on -End, se ealiza on los p ime os esbozos de la aplicación, se ealizó un á bol de los componen es de Reac que se c ea ían, y el es ado de la aplicación 3. Fase de desa ollo e implemen ación: Es a ase u o una du ación de dos meses. Se ealiza on euniones semanales con el u o pa a discu i los úl imos a ances y cualquie posible p oblema que había su gido. Du an e es a ase se o ganizaban sesiones dia ias pa a abaja en el p oyec o. A lo la go de es a ase hubo una comunicación con inua con A agon a a és de los cha s o iciales c eados pa a ayuda al desa ollado . 17 Me odología de desa ollo so wa e La me odología de desa ollo u ilizada en es e p oyec o sigue los p incipios de las me odologías ágiles, especialmen e la me odología Sc um. Se adap ó cie os en oques y écnicas al con ex o especí ico del abajo. 17 h ps://a agon.cha /channel/de -help 34 Se decidió apos a po un desa ollo i e a i o e inc emen al, ca ac e izado po en egas cons an es de so wa e que e an e aluadas po el di ec o . Al se un p oyec o con o mado po una única pe sona, se decidió exclui algunos aspec os de la me odología Sc um más en ocados a la ges ión y abajo en equipo, como pueden se : las euniones dia ias de 15 minu os, las euniones de e ospec i a, e c. Se decidió u iliza la me odología Kanban pa a ges iona las a eas. Es o se ió mo i ado en g an pa e a la expe iencia en o os p oyec os p e ia donde ya se había u ilizado es e ipo de écnicas. La me odología Kanban di ide el abajo del p oyec o en a eas ep esen adas po a je as que son ges ionadas y o ganizadas en able os, donde las a je as se o ganizan en columnas que e lejan cada uno de las e apas de nues o p oyec o, po las cuales pueden pasa las a je as. De es a mane a, log amos ep esen a el lujo de abajo gene al de nues o p oyec o y a medida que a anzamos en las a eas las colocamos en la siguien e e apa. En es e p oyec o, se decidió u iliza la he amien a web g a ui a T ello, que nos pe mi e c ea able os i uales p o is os de an as e apas como que amos. La he amien a es muy in ui i a, simple, in e ac i a y ápida. Se decidió u iliza las es e apas adicionales de Kanban: 1. To Do: Es a e apa con iene las a eas c eadas que oda ian no han sido empezadas. 2. Doing: Es a e apa con iene aquellas a eas que se han iniciado pe o oda ía no han acabado. 3. Done: Con iene aquellas a eas que ya han culminado. El núme o máximo de a eas en p og eso se limi ó a 3 pa a no sob eca ga la e apa y alen iza el lujo de abajo gene al. Debido a la g an can idad de a eas que podían su gi en el p oyec o, se decidió o ganiza las po emá ica, c eando un o al de es able os: 1. Table o de diseño: Es e able o con iene odas aquellas a eas ela i as al diseño del so wa e, ya sea diag amas, esquemas o bosquejos del F on -End o de la pa e de E he eum. 35 Figu a 8. Ejemplo de able o de diseño en T ello. 2. Table o de implemen ación: Es e able o con iene odas aquellas a eas ela i as al desa ollo del código de los componen es de Reac en el F on -End o el desa ollo de los con a os en E he eum. También con iene cualquie o a ac i idad ela i a a la implemen ación. 36 Figu a 9. Ejemplo de able o de implemen ación en T ello. 3. Table o de memo ia: Con iene odas la a eas ela i as a la edacción, co ección y es uc u ación de la memo ia. 37 Figu a 10. Ejemplo de able o de memo ia en T ello. Tecnologías u ilizadas A con inuación se esumen las ecnologías u ilizadas a lo la go del desa ollo del p oyec o, éngase en cuen a que solo se lis an aquellas ecnologías que se llega on a u iliza di ec amen e y no aquellas que u ilizaba algún amewo k po debajo. Tipo Nomb e Uso 38 F amewo ks Reac C eación de la in e az de usua io de la aplicación A agonOS Desa ollo de los con a os de la aplicación Lenguajes de p og amación Ja aSc ip (ES6) Esc i u a de código Solidi y Desa ollo de los con a os in eligen es Lenguaje de diseño CSS C eación del es ilo de cada componen e de la UI desa ollado con Reac Lib e ías A agonUI Uso de componen es y elemen os UI A agonAPI Comunicación en e los con a os y la in e az de usua io y ice e sa Reposi o ios Gi hub Con ol de e siones IDEs Webs o m Esc i u a de código Visual S udio Code Esc i u a de código Remix Esc i u a y p ueba de los con a os in eligen es Adminis ación de p oyec os T ello O ganización de a eas de desa ollo Documen ación Google Docs Esc i u a y edacción de la memo ia Lib eO ice Wo d Esc i u a y edacción de la memo ia Diag amas y g á icas Balsamiq Cloud C eación de mockups D aw.io C eación de diag amas C ea ely C eación de diag amas sol2uml C eación de diag amas UML de con a os 39 A agon La complejidad y amaño de A agon equie e di idi y es uc u a el p oyec o en dis in os módulos con p opósi os especí icos. En o al, exis en cinco módulos: Figu a 11. S ack de ecnologías de A agon A agonOS Es e módulo es un amewo k o ien ado al desa ollo de con a os. Con iene un con a o in eligen e llamado Ke nel que ac úa como coo dinado de los componen es que con o man una DAO. Se enca ga de es unciones p incipales: 1. La ges ión de una es uc u a de da os llamada Lis a de Con ol de Accesos (ACL), que es ablece la mane a en que las aplicaciones de la DAO in e ac úan en e sí, de iniendo los pe misos que las en idades o aplicaciones ienen sob e o as, así como el ges o de esos pe misos. Es o abs ae al desa ollado de ene que implemen a la lógica de au en icación al p og ama una aplicación. La ACL se o ganiza de la siguien e mane a: 40 Me amask Es una ex ensión pa a el na egado que e pe mi e ges iona una ca e a de E he eum e in e ac ua con la ed, pe mi iendo i ma ansacciones, ecibi e he , llama a unciones de con a os, e c. Todo es o sin necesidad de usa un clien e de E he eum y con igu a un nodo en u o denado local, que puede llega a se bas an e engo oso y cos oso ya que se iene que almacena localmen e la blockchain de E he eum. Me amask e pe mi e con igu a el nodo emo o al que e quie es conec a , que po lo de ec o suele se In u a.io , y lo hace po medio del uso de la lib e ía de Ja aSc ip Web3 18 que o ece una in e az pa a u iliza el p o ocolo JSON-RPC , empleado po E he eum pa a 19 de ini la comunicación con los nodos. Figu a 15. Vis a inicial de Me amask Solidi y Es un lenguaje de p og amación o ien ado a obje os de al o ni el que nos pe mi e implemen a los con a os in eligen es en pla a o mas compa ibles con la E he eum Vi ual Machine (EVM), como po ejemplo la p opia E he eum, Q um, D ini y, Roo s ock, Ubiq, e c. 18 Nodo de E he eum público al que los usua ios pueden accede pa a ejecu a DApps sin necesidad de que engan que con igu a o ins ala su p opio nodo. 19 47 In luenciado po o os lenguajes como Py hon, C++ o Ja aSc ip (al cual se asemeja mucho), Solidi y se ha con e ido en el lenguaje p incipal pa a el desa ollo de los con a os den o de E he eum. Solidi y compa e muchas simila idades con o os lenguajes. Posee las es uc u as de con ol más comunes, como po ejemplo: o , while, i , else, e u n, e c. De la misma o ma, posee los ipos de a iables ípicos, po ejemplo: in , boolean, s ing  , e c; añade o as nue as como puede se add ess  que e leja una di ección de E he eum y es á p o is a de campos y mé odos ú iles como puede se balance  que nos pe mi e ob ene el balance de la cuen a a la que apun a la di ección o  ans e que nos pe mi e pasa una can idad de E he de e minada a una cuen a. O o ipo de a iable que ale la pena menciona es mapping  , una especie de hash able en donde podemos almacena una cla e y el alo al que es a apun a. Po úl imo, Solidi y ambién inco po a las unciones jun o a modi icado es de acceso conocidos como public  op i a e  , y o os p opios del lenguaje como po ejemplo:  iew, pu e, payable  , e c. A con inuación se mues a un con a o de ejemplo sacado de la documen ación o icial de Solidi y que nos pe mi e c ea y ans e i “monedas”. con ac Coin { add ess public min e ; mapping (add ess => uin ) public balances; e en Sen (add ess  om, add ess o, uin amoun ); cons uc o () public { min e = msg.sende ; }  unc ion min (add ess ecei e , uin amoun ) public {  equi e(msg.sende == min e ); balances[ ecei e ] += amoun ; }  unc ion send(add ess ecei e , uin amoun ) public {  equi e(amoun <= balances[msg.sende ], "Insu icien balance."); balances[msg.sende ] -= amoun ; balances[ ecei e ] += amoun ; emi Sen (msg.sende , ecei e , amoun ); } } FIgu a 16. Con a o de ejemplo hecho en Solidi y 48 A p ime a is a, podemos obse a que la es uc u a del con a o gua da una g an simili ud con la de una clase. Decla amos a ibu os, un cons uc o y mé odos. Quien “ins ancie” el con a o iene pe misos de c ea nue as monedas y cualquie usua io iene la posibilidad de ans e i sus monedas a o a pe sona. También exis en a iables globales como es el caso aquí de msg que nos pe mi e accede a in o mación adicional como el emiso de la ansacción que ha c eado el con a o o ha in ocado alguno de sus mé odos o da os ela i os a la ansacción . Se puede obse a que Solidi y ambién nos pe mi e c ea e en os que al emi i se pueden se cap u ados en la in e az de la aplicación . Es o nos pe mi e ejecu a lógica pe inen e en el F on -End as llama al con a o. Remix Es un IDE pa a el na egado de código abie o que nos pe mi e esc ibi y depu a nues os Sma Con ac s u ilizando Solidi y, Vipe u o os lenguajes. La g an en aja de u iliza Remix es que es al amen e con igu able y nos abs ae de la compilación y despliegue de nues os con a os, po lo que nos acili a eno memen e la a ea de depu ación. En e las ca ac e ís icas más des acables de Remix que han acili ado el desa ollo de los con a os de es e p oyec o se encuen an: 1. Inco po a un lis ado de compilado es de dis in as e siones de Solidi y en e los que podemos selecciona el que más nos in e ese. 2. Podemos selecciona el en o no donde que emos que se desplieguen los con a os y se ejecu en las ansacciones. Po de ec o, Remix los despliega en una blockchain in e na del na egado , pe o podemos ambién deci le que se conec e a nodos emo os u ilizando un clien e de E he eum o a p o eedo es de Web3 como Me amask o Mis . 3. Posee un explo ado de iche os in e no donde se encuen an odos nues os con a os. Nos pe mi e añadi , edi a y elimina nue os iche os. 4. Una de la secciones de la in e az mues a un lis ado de odas las unciones de nues o con a o con campos po cada pa áme o que podemos ellena pa a luego in oca la unción. Es bas an e in ui i o y simpli ica el p oceso de depu ación. 49 Figu a 17.Vis a p incipal del IDE Remix. Reac Reac es una lib e ía de Ja aSc ip de código abie o c eada po Facebook pa a el diseño y desa ollo de in e aces de usua io den o de aplicaciones de una sola página (SPA) po medio de la c eación y desa ollo de componen es, ozos de código o ganizados en módulos que admi en una en ada de da os y ende izan o os como salida. Es os componen es son en e amen e dinámicos po lo que cambios en los da os de en ada modi ican el es ado del componen e y aca ean cambios en los elemen os de salida ende izados. Pa a aseando a los desa ollado es de A agon, las azones po las que se escogió Reac como amewo k del p oyec o sob e o os como Vue o Angula ue on: 1. Popula idad  : Reac es el amewo k más popula en e los desa ollado es. Como pla a o ma, e iden emen e que emos llega a an os usua ios como sea posible. 2. Animaciones de buena calidad  : Nada pa ecido a eac -mo ion exis e en Vue, y ene una buena lib e ía de animación es una necesidad absolu a si que emos alcanza los ni eles de calidad de la UI que nos p oponemos 3. Facilidad a la ho a de da es ilo a los componen es  : Paque es como s yled-componen s no exis en pa a o os amewo ks (al momen o de esc ibi es o), que acili an el uso de CSS pa a es iliza los componen es. 50 Reac ope a sob e la idea de composición (y no he encia), es deci , los componen es pueden con ene o os componen es de o ma que se puedan cons ui elemen os de la in e az (bo ones, campos de o mula ios, o mula ios, ba as de búsqueda, e c) que se ag upan en componen es de o den mayo que cons i uyen la es uc u a básica de nues a aplicación. Pa a ilus a lo an e io men e mencionado, obse emos a modo de ejemplo el componen e de o mula io del p oyec o: impo  Reac   om ' eac ' impo  { Bu on, Tex ,  heme }  om '@a agon/ui' cons  Fo m = ({ child en, onSubmi , submi Tex , heading, subHeading }) => {  e u n ( <Reac .F agmen > {heading && <Tex  size="xxla ge">{heading}</Tex >} {subHeading && <Tex >{subHeading}</Tex >} <di  s yle={{ heigh : '1 em' }} /> {child en} <Bu on s yle={{ use Selec : 'none' }} mode="s ong" wide onClick={onSubmi } > {submi Tex } </Bu on> </Reac .F agmen > ) } expo  de aul  Fo m Figu a 18. Fo mula io hecho con Reac Es e componen e se suele llama en Reac “componen e uncional” ya que se de ine a modo de unción que expo amos pa a luego pode se u ilizada en cualquie pa e de la aplicación que que amos. Apa e de es e ipo de componen es, ambién exis en los componen es de clase, que se de inen como una clase u ilizando el es ánda de Ja aSc ip ES6. 51 El componen e ecibe una se ie de da os de en ada que especi icamos como pa áme os de la unción. En es e caso, ecibe una a iable child en que ep esen a un conjun o de componen es hijos que con end á Fo m, espe ando que sean los campos del o mula io; ecibimos onSubmi que se á el manejado de e en o que se ejecu e cuando p esionemos el bo ón “Submi ”; y luego o as a iables con ienen el nomb e del bo ón de de submi , la cabece a y subcabece a del o mula io. Pa a implemen a el componen e se u iliza JSX, una ex ensión de la sin axis de Ja aSc ip p omo ido po Reac que busca uni ica lenguajes de ma cado (HTML) y diseño (CSS) e inco po a los a Ja aSc ip . Si que emos inclui algún ipo de lógica con Ja aSc ip esc ibimos el código en e co che es, como es el caso de las líneas 7 y 8, donde u ilizamos una p opiedad condicional de Ja aSc ip donde si el p ime alo es e dade o asignamos el segundo, que en es e caso es un componen e. Po úl imo, cabe menciona que el componen e Fo m con iene y hace uso de o os dos componen es: Tex  y Bu on  . 52 DESARROLLO DE PROTOTIPOS: UN PRIMER ACERCAMIENTO Du an e el diseño y plani icación del p oyec o se iden i ica on dos ecnologías c í icas pa a el desa ollo de la aplicación: Reac y Solidi y. E a necesa io adqui i compe encias y cie o ni el de expe iencia en su uso si se que ía pone en ma cha el p oyec o. Pa a omen a el ap endizaje, se decidió ealiza dos cu sos que se encon aban en la pla a o ma online Udemy . A con inuación, se lis an algunas de las azones po las cuales 20 se seleccionó es os cu sos y no o os: ● Ambos cu sos se ca ac e izan po un al o componen e p ác ico: se desa olla una pequeña aplicación a la pa que se an explicando concep os, écnicas y he amien as ela i as a la ecnología; cada uncionalidad desa ollada a ianza los conocimien os ap endidos. ● Ambos cu sos se impa en po educado es ce i icados con muy buenas c í icas en la pla a o ma. ● Los cu sos son eno ados cada ez que un cambio signi ica i o en la ecnología iene luga . Bu ge Builde : Una aplicación hecha con Reac Es a cu so ep esen a un p ime paso en el manejo de Reac , consis e en el desa ollo de una pequeña aplicación de comp a de hambu guesas llamada Bu ge Builde . Se o ecen es uncionalidades: 1. C ea u p opia hambu guesa seleccionando los ing edien es y su can idad. 2. Realiza el pago de la comp a y ellena un o mula io de con ac o pa a en ia a domicilio el pedido. 3. Consul a odas us ó denes de comp a. 20 h ps://www.udemy.com/ 53 Implemen ación El p ime paso en el desa ollo del p o o ipo ue el esbozo de un diag ama es uc u al que delinea a los componen es que con o man la aplicación: Figu a 19. Diag ama de componen es de Bu ge Builde Como se puede obse a , cada componen e es á ep esen ado po una caja y las lechas ep esen an una elación de composición, donde: si la lecha sale del componen e A y llega al componen e B, en onces A con iene y u iliza B. El diag ama ambién mues a en la pa e in e io los componen es auxilia es, una se ie de componen es cuyo uso suele se ecuen e po lo que se han o ganizado en un di ec o io especí ico. Po ejemplo, los bo ones pa a acep a o echaza acciones; las en anas modales pa a mos a mensajes de e minados; o los iconos de ca ga (spinne s) que indican al usua io que su ope ación se es á ealizando. La aplicación es á compues a po cua o componen es p incipales: 54 1. Na iga ion: Rep esen a la ba a de na egación de la aplicación. 2. Checkou : Engloba el modal de con i mación de la comp a y el o mula io de con ac o una ez la comp a se haya ealizado. 3. Bu ge Builde : Con iene la ep esen ación g á ica de la hambu guesa y el panel de ing edien es pa a pe sonaliza el pedido. 4. O de s: Se enca ga de ende iza las ó denes de comp as y mos a un lis ado de las mismas. Pa a comunica y conec a los componen es en e sí, se usó Reac .js , una lib e ia que nos 21 pe mi e de ini el en u amien o pa a nues a aplicación, una mane a de coo dina los componen es con las u as URL. Po úl imo, se u ilizó Redux pa a almacena el es ado de la aplicación e i conociendo un poco la a qui ec u a Flux, de la cual habla emos en capí ulos pos e io es. La is a p incipal de la aplicación es la siguien e: Figu a 20. Vis a p incipal de Bu ge Builde . En el cen o de la is a, se encuen a una ep esen ación isual de la hambu guesa que se a c eando. Debajo, podemos obse a un panel con selec o es donde podemos añadi o elimina un o al de cua o ing edien es; jun o a es os se encuen a un bo ón inicialmen e desac i ado pa a p ocesa la o den de comp a. Po úl imo, en la pa e supe io podemos obse a la ba a de na egación donde se encuen a la sección “O de s” a la que podemos accede pa a e odas las ó denes de comp a. 21 h ps:// eac aining.com/ eac - ou e /web/guides/quick-s a 55 Figu a 21. Vis a de hambu guesa c eada. Cuando c eamos la hambu guesa y hacemos clic en “O de Now”, se ab i á una en ana eme gen e pa a con i ma nues a o den: Figu a 22. Ven ana de con i mación de la o den. Cuando con i mamos la comp a, la aplicación nos pedi á ellena un o mula io de con ac o: 56 En ada Nomb e, desc ipción, ipo de comi é, ipo de o ación, símbolo del oken del comi é, miemb os iniciales, po cen aje de ap obación, po cen aje de quo um y du ación de la o ación. Salida - Necesi a Conexión a la ed de E he eum. Gas. P econdición Los da os in oducidos po el usua io cumplen el o ma o adecuado y son álidos. No exis e un comi é con el mismo nomb e o símbolo del oken. El usua io posee un oken APP. El usua io ha c eado una o ación en la aplicación Vo ing  que ha concluido con un mayo núme o de o os a a o . Pos condición El comi é es c eado den o de la ed de E he eum E ec os cola e ales No hay. 63 Figu a 26. Diag ama de ac i idad de la c eación de un comi é. CM-RF-2 Elimina comi é P io idad Al a. 64 Es abilidad Al a. Desc ipción Se elimina un comi é del con a o Commi eeManage . En ada Cla e hash del comi é Salida - Necesi a Conexión a la ed de E he eum. Gas. P econdición El usua io posee un oken APP. El usua io ha c eado una o ación en la aplicación Vo ing  que ha concluido con un mayo núme o de o os a a o . La cla e hash del comi é exis e. Pos condición El comi é queda eliminado del con a o Commi eeManage . E ec os cola e ales No hay. 65 Figu a 27. Diag ama de ac i idad de la eliminación de un comi é. CM-RF-3 Añadi miemb o a comi é P io idad Al a. Es abilidad Al a. Desc ipción Se añade un nue o miemb o a un comi é de e minado. En ada Cla e hash del comi é y di ección de la cuen a de E he eum del nue o miemb o Salida - Necesi a Conexión a la ed de E he eum. Gas. P econdición El usua io posee un oken APP. El usua io ha c eado una o ación en la aplicación Vo ing  que ha concluido con un mayo núme o de o os a a o . 66 La cla e hash del comi é exis e. La di ección del nue o miemb o es álida y exis e. Pos condición El nue o miemb o posee un oken ges ionado po el TokenManage del comi é al que ha sido añadido. E ec os cola e ales No hay. Figu a 28. Diag ama de ac i idad de añadi miemb o. 67 CM-RF-4 Elimina un miemb o de un comi é P io idad Al a Es abilidad Al a Desc ipción Se elimina un comi é de la ed E he eum En ada Cla e hash del comi é y di ección del miemb o Salida - Necesi a Conexión a la ed de E he eum. E he . P econdición El usua io posee un oken APP. El usua io ha c eado una o ación en la aplicación Vo ing  que ha concluido con un mayo núme o de o os a a o . La cla e hash del comi é exis e. La di ección del miemb o es álida y exis e. Pos condición El miemb o ya no posee un oken del TokenManage  del comi é. E ec os cola e ales No hay. 68 Figu a 29. Diag ama de ac i idad de elimina miemb o. 69 Requisi os no uncionales 1. Limi a el amaño de los con a os: E he eum es ablece un lími e máximo de consumo de gas pa a la c eación de cualquie con a o. Es o es inge el núme o de ope aciones y cálculos compu acionales que se pueden ealiza . Una o ma de abo da es e p oblema es modula izando la es uc u a de la aplicación en la ed blockchain, descomponiendo con a os que c ecen en amaño en o os más pequeños que con engan lógica más especí ica. El desa ollo de los con a os se ealizó de al mane a que se eu iliza a el máximo codigo posible sin necesidad de incu i en ope aciones edundan es. 2. Minimiza los cos es de gas: Ejecu a la lógica con enida en los con a os exige gas pa a paga a los mine os la p opagación del nue o es ado a lo la go de la ed. El usua io iene que desembolsa e he de su ca e a pa a hace en e a los gas os de gas. Es de g an impo ancia que el código desa ollado sea simple y e icien e pa a e i a , en la medida de lo posible, u iliza un al o ni el de pode de cómpu o que se aduzca en un al o cos e de e he . Cualquie ipo de lógica que in oluc a el p ocesamien o y cálculo de da os que no equie a de la blockchain, se ha hecho en el F on -End pa a educi aún más los cos es de gas. 3. Minimiza almacenamien o on-chain: El cos e de gua da da os en la blockchain es muy al o. Almacena un alo en la blockhain puede llega a cos a al ededo de 20.000 gas y ac ualiza lo 5.000 gas [43] (a 0,033€ y 0,008€ espec i amen e al p ecio ac ual de 10 gwei/gas y 162,763€/e he ). Debido a es o, el modelo de da os es á con o mado po ipos de a iables de poco amaño. Cualquie ipo de da o que equie a un espacio mayo puede se almacenado en o as pla a o mas descen alizadas y dis ibuidas como IPFS, gua dando en la blockchain el hash que apun a a ese da o. En e siones pos e io es, se iene pensado aslada el almacenamien o de la desc ipción del comi é a IPFS. 4. Usabilidad in ui i a: La in e az de usua io debe ca ac e iza se po un diseño que acili e al usua io el ap endizaje del sis ema en muy poco iempo. Tipos de Usua io Los pe misos de es a aplicación se han con igu ado pa a que ap o echen la escalabilidad de pe misos que o ece A agon. Siguiendo el modelo de gobe nanza democ á ico es ablecido pa a la DAO, odas las uncionalidades que o ece la aplicación Commi eeManage es án supedi adas a la aplicación Vo ing gene al de o ma que oda acción enga que pasa una o ación p e iamen e. Po lo an o, el único ac o den o del con ex o de la aplicación Commi eeManage  es la aplicación de Vo ing 70 Casos de uso A con inuación se de allan los casos de uso de la aplicación que ecoge odos los equisi os uncionales an e io men e expues os. Como se puede obse a , se sigue el modelo de gobe nanza al pe mi i ejecu a los p ocesos sólo po la aplicación Vo ing gene al de la DAO, y g acias al ans e salidad y escalado de los pe misos odo usua io con un oken APP puede c ea o aciones en Vo ing  pa a in oca alguna de las ope aciones del Commi ee Manage . Figu a 30. Diag ama de casos de uso. Diseño gene al de la aplicación: Mockups El p ime paso en el desa ollo de la in e az de usua io consis ió en c ea un diseño inicial de las is as de la aplicación. Pa a ello, se ecu ió a la he amien a web Balsamiq Cloud, que o ecía diseños es é icamen e supe io es a los de o as he amien as, una in e az in ui i a y un ácil acceso a la aplicación. Se es ablecie on una se ie de pau as p incipales a la ho a de elabo a el diseño: 71 1. El diseño enía que se cohe en e con el es ilo que A agon había seguido en sus aplicaciones, an o en el uso de los colo es y su onalidad como en el es ilo de los componen es u ilizados o c eados. 2. La in e az debe se lo más in ui i a posible y no ab uma al usua io con una excesi a can idad de bo ones o elemen os de con ol. 3. Debido a que el con ac o con los con a os en la ed de E he eum se ealiza po medio de llamadas asínc onas que pueden ene una du ación conside able has a de ol e el con ol de la aplicación al usua io, e a impo an e man ene in o mado al usua io du an e la ejecución de las ansacciones de alguna o ma. A con inuación se mues an los mockups elabo ados: Figu a 31. Vis a p incipal de Comi ee Manage 72 Templa eBase: Es e con a o o ece es uncionalidades básicas: 1. Accede al DAOFac o y, un con a o que abs ae al desa ollado del mecanismo de c eación de una DAO, desde ins ancia el Ke nel y el ACL has a con igu a sus espec i os pe misos. 2. Busca y de ol e la di ección del con a o de la úl ima e sión de cualquie aplicación que se le solici e. Pa a ello se le pasa el nomb e hasheado de la aplicación, po ejemplo: commi ee-manage .a agonid.e h  . Es o se u iliza pa a ob ene las aplicaciones que que emos ins ala en nues a DAO. Po úl imo, cabe menciona que pa a ob ene las e siones de las aplicaciones, el con a o u iliza el ENS (E he eum Name Se ice) que comen amos en capí ulos p e ios. Templa e: Es e con a o he eda de Templa eBase, po lo que podemos accede a las uncionalidades p e iamen e desc i as. Se enca ga de c ea y con igu a la DAO, con iene la lógica p incipal de es e p oceso. El mecanismo de c eación se puede esumi en los siguien es pasos: 1) C ea una nue a DAO u ilizando DAOFac o y 2) Asigna al con a o Templa e dos pe misos necesa ios pa a con igu a la DAO: a) APP_MANAGER_ROLE: Pe mi e ins ancia y asigna nue as aplicaciones a la DAO. b) CREATE_PERMISSIONS_ROLE: Pe mi e c ea nue os pe misos en el ACL de la DAO. 3) C ea ins ancias de las aplicaciones Commi eeManage , Vo ing  ,TokenManage y el oken APP. Las aplicaciones Vo ing yTokenManage egulan los pe misos g upales e indi iduales (a a és del oken APP) que se engan sob e cada uno de los comi és c eados con Commi eeManage  . 4) Inicializa las aplicaciones an e io men e c eadas. 5) C ea y con igu a los pe misos pa a cada una de las aplicaciones, así como el manage de cada pe miso. Todas las ope aciones sob e Commi eeManage (c ea , elimina comi és, e c) solo pueden se in ocadas po la aplicación de Vo ing po medio de o aciones en las que pueden pa icipa odos aquellos con un oken APP. 6) Re oca los pe misos asignados al con a o Templa e en el paso 2 y easignalos al Commi eeManage pa a que pueda c ea una nue a ins ancia y con igu a los pe misos de las aplicaciones Vo ing yTokenManage pa a cada comi é nue o que se c ee. Commi eeManage .sol Es e iche o con iene los con a os p opios de la aplicación. Pa a op imiza el consumo de gas se p ocu ó u iliza en la medida de lo posible a iables de ipo by es. BaseTempla e: El p ocesos de c eación y despliegue de las aplicaciones de Vo ing y TokenManage puede se cos oso en é minos de gas y ocupa muchas líneas de código, 79 algo que se iene que ene en cuen a ya que E he eum limi a la máxima can idad de gas que se puede consumi , el amaño de los con a os o incluso las a iables locales que u ilicemos den o de una unción (pe mi e un máximo de 16). Pa a sol en a es os p oblemas, se decidió c ea un con a o que pe mi iese o ganiza mejo el código y abs ae al Comi eeManage de odas las ope aciones ela i as a la con igu ación de las o as aplicaciones, y que es e solo se limi ase a llama a los mé odos de BaseTempla e al c ea un nue o comi é. El con a o ambién o ece unciones auxilia es pa a comunica se con el Ke nel o ACL pa a acili a , asigna o elimina pe misos a los comi és c eados. El con a o necesi a de o os dos con a os pa a pode ope a : 1. ENS: Lo necesi amos pa a pode mapea los nomb es de las aplicaciones de Vo ing yTokenManage a las di ecciones de sus con a os pa a pode ins ancia ambos cuando c eemos un nue o comi é. 2. MiniMeTokenFac o y: Un con a o que ac úa como ac o ía que pe mi e c ea cualquie oken pa a la DAO. En nues o caso, lo u iliza emos pa a c ea el oken APP. O iginalmen e es a ac o ía se iba a desplega en conjun o con el con a o Commi eeManage , pe o es o demandaba un g an cos e de gas y aumen aba el amaño del código del con a o más allá de los lími es pe mi idos en E he eum, po lo que se conside ó que e a p e e ible pasa el con a o desde Templa e al ins ancia el Commi eManage . Commi eeManage : Se pod ía deci que es el con a o más impo an e de la aplicación al ence a la lógica p incipal de la misma. He eda de BaseTempla e pa a pode accede a odas las unciones an e io men e desc i as y de A agonApp debido a que es obliga o io pa a el con a o de cualquie aplicación de A agon. Uno de los p ime os pun os de discusión ace ca del diseño de la aplicación ue el de decidi qué pe misos debe ene es a. En un p incipio, se conside a on es pe misos: c ea , modi ica y elimina un comi é. No obs an e, se obse ó que es os pe misos no e an lo su icien emen e g anula es y quizás hab ía que di idi los en o os. T as un es udio más minucioso, se llegó a los siguien es pe misos: 1. C ea comi é. 2. Edi a comi é. 3. Elimina comi é. 4. Edi a los miemb os de un comi é. 5. Edi a los pe misos de un comi é. A modo de ejemplo, a con inuación se mues a como se decla a uno de es os pe misos en el con a o: 80 Figu a 39 . Decla ación de pe misos del con a o Commi eeManage . Podemos obse a que los pe misos se decla an de ipo by es32  en ez de s ing pa a que ocupen menos espacio en la blockchain. La idea es “hashea ” el s ing que desc ibe el pe miso, es deci , pasa como pa áme o el pe miso a una unción hash (en es e caso keccak256) que nos de ol e á una cadena de 32 by es ija que es mucho más concisa y ácil de manipula . Den o del con a o se de ine el comi é de la siguien e mane a: Commi ee: Es un s uc que ep esen a el comi é. Se de inen en él una se ie de da os que ca ac e izan un comi é: a. Name: Con iene el nomb e del comi é. Es de ipo by es32  . b. Desc ip ion: Con iene la desc ipción del comi é, es deci , una b e e explicación de los obje i os y unciones del comi é. Es de ipo s ing debido a que es muy p obable que con enga cadenas de ex o de más de 32 by es. c. Vo ingType: Es un núme o que especi ica el ipo de o ación que posee el comi é. El ipo de o ación de e mina es alo es: i. El po cen aje de ap obación necesa io pa a que pase la o ación. ii. El po cen aje de quó um. iii. La du ación de la o ación (en días). Se han c eado cua o ipos de o ación: Tipo Ap ob ación (%) Quó um (%) Du ación (días) Codi icación Consenso 99 99 30 0 Mayo ía absolu a 51 51 30 1 Mayo ía simple 51 15 30 2 Pe sonalizada - - - 3 La úl ima columna indica el alo que ep esen a el ipo de o ación den o de la a iable. Vo ingType. La úl ima o ación es con igu able comple amen e po el usua io. Sabiendo que el ango de alo es pa a es e campo no es muy amplio y que se necesi a educi lo máximo posible el uso de memo ia en la 81 blockchain, se aco dó u iliza uin 8,  el en e o más pequeño que pe mi e Solidi y. d. Commi eeType: Es un núme o que especi ica el ipo de comi é . Se u iliza pa a con igu a el ipo de oken que el comi é posee. Los ipos de oken se ca ac e izan po es aspec os: i. T ans e ible: El oken puede se aspasado a o a pe sona. ii. Único: De e mina si el oken es acumulable. iii. Decimales: De e mina el núme o de decimales. Se han c eado es ipos de okens: Tipo T ans e ible Acumulable Codi icación Membe ship NO NO 0 Equi y SI SI 1 Repu a ion NO SI 2 El ipo de es e campo es uin 8  , po las mismas azones expues as en el campo p e io. En el código, es os campos se han decla ado uno después o o, ya que la EVM (Máquina Vi ual de E he eum) empaque a mejo los campos de un s uc del mismo ipo, educiendo el amaño que debe ese a pa a es os en la blockchain. e. TokenManage AppAdd ess: Con iene la di ección del con a o de la aplicación TokenManage del comi é. Necesa io a la ho a de concede o e oca u u os pe misos indi iduales al comi é. . Vo ingAppAdd ess: Con iene la di ección del con a o de la aplicación Vo ing del comi é. Necesa io a la ho a de concede o e oca u u os pe misos g upales al comi é. El con a o posee únicamen e dos a ibu os: 1. Commi ees: Mapping que con iene los comi és. Tiene como cla e la di ección del con a o de la aplicación TokenManage del comi é al que apun a, y como alo el s uc  Commi ee. Se ha escogido la di ección del TokenManage ya que no pueden exis i dos iguales, aunque ambien se podia habe elegido la di ección del con a o de la aplicación Vo ing  . 2. Gene alVo ing: Re e encia al con a o de la aplicación Vo ing gene al de la DAO. Es necesa io ene a disposición es e con a o pa a concede le a la o ación gene al pe misos de c ea o quema okens sob e la aplicación TokenManage  y c ea o os o cambia la con igu ación de la aplicación Vo ing (po cen aje de ap obación, du ación de la o ación y po cen aje de quó um) de cada comi é. De es a o ma, 82 queda a elección de odos los miemb os decidi quienes con o man el comi é en odo momen o y cómo deben o a es os pa a ap oba o echaza p opues as. O o aspec o impo an e del con a o son los e en os, que cons i uye la p incipal o ma de comunicación con el F on -End de la aplicación pa a no i ica qué ha cambiado y qué acciones han a ec ado a la blockchain. Debido a que la emisión de e en os supone un cos e muy bajo en é minos de gas, se decidió emi i uno po cada uncionalidad del con a o. Po lo an o, end íamos los siguien es: 1. C ea eCommi ee, Remo eCommi ee y Modi yCommi ee: Es os e en os se dispa án al c ea , modi ica o elimina un comi é. 2. AddMembe y Remo eMembe : Es os e en os se dispa an al añadi o elimina miemb os. 3. AddPe mission y Remo ePe mission: Es os e en os se dispa an al añadi o elimina pe misos al comi é. La idea es que una ez el con a o haya acabo de ejecu a la lógica de la uncionalidad que se haya in ocado, se emi e el e en o co espondien e. Pod ía deci se que la lógica más impo an e del con a o se encuen a en la unción _c ea eCommi eeApps(...)  , la cual se enca ga de pone en ma cha la c eación de las aplicaciones de Vo ing  yTokenManage  que equie en los comi és pa a unciona adecuadamen e, in ocando a los mé odos de BaseTempla e necesa ios pa a con igu a y desplega las aplicaciones. El núme o de pa áme os que se le pasaban a es a unción e an an os que sob epasan el lími e pe mi ido po Solidi y, se u o que ag upa pa áme os del mismo ipo den o de a ays de amaño ijo pa a educi el núme o de a iables Figu a 40 .Decla ación de la unción _c ea eCommi eeApps Backg ound Sc ip A agon implemen a una a qui ec u a Flux [45] pa a la ges ión y con ol del lujo de da os a lo la go de la in e az de usua io. Es una solución que busca acili a el desa ollo de aplicaciones que cada ez an c eciendo en complejidad y amaño. Es e componen e, ep esen ado po el iche o Sc ip .js en la aplicación, busca implemen a es a a qui ec u a al es ablece un lujo de da os unidi eccional. La es uc u a que p opone lux es la siguien e: 83 Figu a 41. Flujo de da os en la a qui ec u a Flux. [45] En el p oyec o, end íamos el siguien e lujo de da os: Figu a 42. Flujo de da os en A agon La in e acción del usua io con el con a o a a és de alguna de las is as esul a en la emisión de un e en o que ep esen a ía una acción, ya sea c ea /elimina un comi é o añadi /elimina un miemb o. El e en o es cap ado po una unción llamada educe ( educ o ) que se encuen a en el iche o Sc ip .js y se impo a del módulo A agonAPI, cuyo obje i o es p oduci un nue o es ado de la aplicación dada una acción y el es ado p e io. El nue o es ado se gua da en el s o e. A con inuación, la is a accede al s o e u ilizando cie as unciones de A agonAPI y ac ualiza la in e az de usua io de acue do al nue o es ado. A agon ejecu a el iche o Sc ip .js en un Web Wo ke pa a que ope e en segundo plano. 23 La unción educe ambién puede ecibi cambios que no p o ienen necesa iamen e del con a o, ajenos a la aplicación en sí. Vis a 23 Los Web Wo ke s cons i uyen una o ma de ejecu a sc ip s en hilos sepa ados del hilo p incipal de la aplicación web pa a no bloquea o alen iza su ejecución. 84 La is a de la aplicación desa ollada con el amewo k Reac posee en g an medida una es uc u a semejan e a la de un p oyec o de Reac cualquie a. Figu a 43. Es uc u a del F on -End El pun o de en ada de la aplicación es index.h ml, el iche o h ml p incipal que impo a el iche o index.js, el cual se enca ga de comunica nues a aplicación de Reac con los con a os u ilizando la unción educ o a desc i a p e iamen e pa a c ea el es ado de la aplicación. La o ma de conec a ambas pa es es en ol iendo el componen e gene al de la aplicación App  que p o iene del iche o App.js en el componen e A agonAPI que o ece el módulo homónimo. A con inuación, le indicamos a Reac que es posible ende iza la aplicación. Figu a 44.T ozo de código del iche o index.js El módulo A agonAPI o ece dos obje os al F on -End, una ez ambos se hayan conec ado: 85 1. appS a e  : Obje o que con iene el es ado de la aplicación que p oduce la unción educ o a del Backg ound Sc ip . Podemos accede a los e en os o a ibu os públicos del con a o. 2. api  : Obje o que nos pe mi e in oca a las unciones del con a o de la aplicación. Po ejemplo, si que emos in oca al mé odo que elimina un comi é, lo ha íamos de la siguien e mane a: Figu a 45. Ejemplo de uso del api. Pa a el desa ollo de los componen es de Reac que con o man las in e aces de usua io de la aplicación se siguió el siguien e diag ama de componen es: 86 Figu a 46 . Diag ama de componen es de la aplicación. El componen e cen al App  hace uso de cua o componen es p incipales: 1. NewCommi eePanel  : Implemen a el panel la e al que con iene el o mula io pa a c ea un nue o comi é. 2. NewMembe Panel  : Implemen a el panel la e al que con iene el o mula io pa a añadi un nue o miemb o a un comi é. 87 3. Lis Panel  : Implemen a un panel que puede ende iza una lis a de comi és o miemb os de un comi é. Uno de los usos más impo an es es la implemen ación de la is a gene al de la aplicación. 4. Commi eePanel  :Implemen a la is a de un comi é seleccionado. Mos ando sus miemb os e in o mación gene al de in e és. Todos los componen es desa ollados u ilizan la lib e ia A agonUI, que o ece componen es pa a es uc u a la aplicación como puede se Main, TabBa , AppView o SidePanel que implemen a el panel la e al ca ac e ís ico de las aplicaciones de A agon. También o ece componen es pa a mos a di ecciones o cuen as de E he eum de una o ma más es é ica e in e ac i a, po ejemplo: Iden i yBadge oE hIden icon  . Apa e de es os, A agonUI posee una se ie de componen es que implemen an dis in os campos que ecuen emen e se suelen u iliza en los o mula ios, en e ellos se u iliza on: D opdown, Tex Inpu  y Field. Ejemplos de uso A con inuación, se desc ibe cada una de las uncionalidades que o ece la aplicación. Ejempli icando su uso paso a paso. C eación de un comi é Si se quie e c ea un nue o comi é, hay hace clic sob e el bo ón “New Commi ee”, el cual ab i á un panel la e al que con iene el siguien e o mula io: Figu a 47. Vis a del panel la e al pa a c ea un comi é. 88 Elimina miemb o de un comi é Pa a elimina un miemb o se debe na ega a la is a de comi é y, den o de la sección de miemb os, pulsa el bo ón “Remo e” del miemb o que se quie a expulsa . El es o del p oceso es igual al desc i o en ejemplos de uso an e io es. Elimina un miemb o supone des ui el oken que es e posee. Cuando se comple e la ope ación, la ca a del in eg an e den o de la sección de miemb os desapa ece á. Desca ga y ejecución del código Necesi amos u iliza alguna dis ibución de Linux pa a pode ejecu a es e p oyec o. P ime o que nada, necesi a emos ene Node.js ins alado, el cual podemos desca ga desde el siguien e enlace h ps://nodejs.o g/es/download/. Es necesa io ene , como mínimo, la e sión 10.5.3. Una ez hayamos ins alado Node.js podemos desca ga e ins ala globalmen e el CLI de A agon u ilizando el ges o de paque es NPM, que se ins ala implíci amen e al ins ala Node. Pa a desca ga el CLI debemos ab i una consola de comandos e in oduci la siguien e línea: Figu a 56. Comando pa a ins ala el CLI de A agon. Es necesa io desca ga la ex ensión pa a na egado Me amask, la cual podemos desca ga desde el siguien e enlace: h ps://me amask.io/. Una ez hecho es o, debemos c ea y con igu a una cuen a siguiendo paso a paso las ins ucciones que nos indica Me amask. Un de alle a ene en cuen a es cambia el ipo de ed a la que Me amask apun a. Cuando ejecu emos el p oyec o debemos selecciona la ed Localhos :8545, pa a ello hacemos clic sob e la lis a desplegable ubicada en la pa e supe io de la en ana de la ex ensión: 95 Figu a 57. Selección de la ed en Me amask. El código del p oyec o se encuen a en el siguien e eposi o io de Gi hub: h ps://gi hub.com/PJColombo/commi ee-manage -app Debemos pulsa el bo ón “Clone o download” y hace clic en “Download ZIP” Figu a 58. Reposi o io del p oyec o en Gi hub. 96 Una ez desca gado el ZIP, lo descomp imimos y ab imos una consola de comandos den o del di ec o io del p oyec o y ejecu amos el siguien e comando: Figu a 59. Comando pa a ins ala odas las depedencias. Es e comando se enca ga de desca ga e ins ala odas las dependencias que necesi a el p oyec o pa a unciona del ges o de paque es. Una ez hecho es o, ejecu amos la siguien e línea: Figu a 60. Comando pa a ejecu a el p oyec o. Es o p epa a á el en o no necesa io pa a ejecu a nues a aplicación Figu a 61. Resul ado de ejecu a el comando. Una ez se haya desplegado nues a DAO, se ab i á au omá icamen e una nue a pes aña en nues o na egado apun ando a ella. En caso de que no ocu iese es o, podemos ab i lo 97 manualmen e accediendo a la u l que se mues a en la úl ima línea de código de la imagen p e ia. 98 CONCLUSIONES A lo la go de los úl imos años, la ecnología blockchain ha expe imen ado un p og eso o midable den o del con ex o del desa ollo so wa e, dando luga a inicia i as y p oyec os que u ilizan odo ipo de so wa e y he amien as undamen adas en es a ecnología. Las g andes emp esas ya es án empezando c ea sus p opios depa amen os de blockchain y a lle a a cabo p oyec os de desa ollo p opios, al es el caso de Facebook que plan ea lanza Lib a, su p opia c ip omoneda. Aunque es cie o que la ecnología sigue cambiando a un i mo acele ado, no cabe la meno duda de que no es la misma ecnología que la de hace cinco años, ya no es una me a p ueba de concep o. El desa ollo so wa e basado en blockchain se ha o malizado, ha c eado su p opio epe o io de pa ones de diseño; nue as écnicas, me odologías y en oques pa a abo da p oblemas de diseño e implemen ación. Ha c eado ambién una iloso ía p opia. Es e hecho lo podemos e en la p opia inicia i a de A agon. El amewo k es gigan e, depende de muchas ecnologías y paque es subyacen es y el desa ollo de sus múl iples módulos han dado luga a una se ie de he amien as expues as pa a el desa ollado que le pe mi en c ea cosas po encialmen e inc eíbles. La inalidad de es e abajo e a explo a las posibilidades que o ecía A agon a ni el de desa ollo. Es una inicia i a ela i amen e nue a que, en mi opinión, desconocen muchos desa ollado es. Se buscaba da una explicación a su uncionamien o y cómo es aba es uc u ado y o ganizado; ambién el p opósi o de cada he amien a que o ece, que se puede hace con ellas y pa a qué con ex o son más adecuadas. Todo es o a a és del desa ollo de un p oyec o con el obje i o de o ece un en oque p ác ico y no pu amen e eó ico al amewo k. Se espe a que el desa ollo del ges o de comi é pueda o ma pa e de las aplicaciones disponibles de A agon. Y si no es así, al menos que si a de modelo y guía pa a u u os p oyec os que quie an implemen a un buen mecanismo de dis ibución de abajo y a eas den o de las DAOs. 99 CONCLUSION O e he pas ew yea s, blockchain echnology has expe ienced o midable p og ess wi hin he con ex o so wa e de elopmen , leading o ini ia i es and p ojec s ha use all ypes o so wa e and ools based on his echnology. La ge companies a e al eady s a ing o c ea e hei own blockchain depa men s and o ca y ou hei own de elopmen p ojec s, such is he case o Facebook ha is launching Lib a, i s own c yp ocu ency. Al hough i is ue ha echnology con inues o change a an accele a ed a e, he e is no doub ha i is no he same echnology as ha o i e yea s ago, i is no longe a me e p oo o concep . The so wa e de elopmen based on blockchain has been o malized, has c ea ed i s own epe oi e o design pa e ns; new echniques, me hodologies and app oaches o add ess design and implemen a ion p oblems. He has also c ea ed his own philosophy. We can see his ac in A agon's own ini ia i e. The amewo k is gian , i depends on many unde lying echnologies and packages and he de elopmen o i s mul iple modules has esul ed in a se ies o ools exposed o he de elope ha allow you o c ea e po en ially inc edible hings. The pu pose o his wo k was o explo e he possibili ies o e ed by A agon a he de elopmen le el. I is a ela i ely new ini ia i e ha , in my opinion, many de elope s a e unawa e o . I was sough o gi e an explana ion o i s ope a ion and how i was s uc u ed and o ganized; also he pu pose o each ool i o e s, wha can be done wi h hem and o wha con ex hey a e mo e app op ia e. All his h ough he de elopmen o a p ojec wi h he objec i e o o e ing a p ac ical and no pu ely heo e ical app oach o he amewo k. I is expec ed ha he de elopmen o he commi ee manage can be pa o he a ailable applica ions o A agon. And i no , unless i se es as a model and guide o u u e p ojec s ha wan o implemen a good mechanism o dis ibu ion o wo k and asks wi hin DAOs. 100 TRABAJO FUTURO Du an e el desa ollo del p oyec o, el equipo de desa ollo de A agon oda ia no habia implemen ado unciones pa a ob ene el lis ado de aplicaciones y pe misos de la DAO, algo que e a necesa io pa a pode p og ama la lógica de ges ión de pe misos. No obs an e, du an e la úl ima semana del desa ollo del p oyec o una nue a e sión del clien e de A agon ue publicada, la cual con enía las uncionalidades necesa ias ya implemen adas. Es o ab e las pue as a un desa ollo u u o que implemen e la lógica necesa ia en el con a o y c ee las is as de los pe misos en el F on -End. O a de las mejo as que se había conside ado e a la de pe sonaliza en mayo medida los comi és c eados, po ejemplo: ● Pe mi i al usua io pode subi una imagen a la ho a de c ea uno nue o. La imagen se gua da ía en IPFS pa a e i a aumen a los cos es de almacenamien o. ● Apa e de pode in oduci un lis ado de miemb os iniciales, se había conside ado pe mi i in oduci al usua io una can idad de okens iniciales a su elección pa a cada uno de ellos. Es a uncionalidad es a ía es ingida a los okens Repu a ion y Equi y. En cuan o a uncionalidades, se había conside ado añadi en algún u u o las siguien es: ● Implemen a un cha pa a los miemb os del comi é u ilizando algo pa ecido a O bi Cha , donde se pod ían discu i asun os in e nos o ela i os a las unciones del 24 comi é. ● Añadi una nue a is a donde se apa ezcan g á icos his ó icos que mues en un his o ial de odas las acciones ealizadas po los miemb os u ilizando los pe misos indi iduales que p o ee el oken del comi é. Se pod ía in en a implemen a leyendo los e en os his ó icos de las o as aplicaciones desplegadas en la DAO. Ademas, se habia pensando en añadi un g a ico de lineas que mos ase un his o ial de odas las o aciones que han enido luga en el comi é y el esul ado de es a. Así, se pod ía ene una mejo pe cepción de las ac i idades desempeñadas po cada comi é y de su ni el de endimien o. 24 h ps://o bi .cha /#/connec 101 BIBLIOGRAFÍA [1] She min Voshmgi . Token Economy: How blockchains and sma con ac s e olu ionize he economy  , 2019. ISBN-13: 978-3982103822 [2] A ind Na ayanan, Joseph Bonneau, Edwa d Fel en, And ew Mille , S e en Gold ede . Bi coin and C yp ocu ency Technologies  , 2017, P ince on Uni e si y P ess. ISBN-13: 978-0691171692 [3] T adi ional O ganiza ions VS. DAOs  (10 ago. 2019) [En línea]. A ailable: h ps://blockchainhub.ne /dao-decen alized-au onomous-o ganiza ion/ [4] DAOS ack Team (24 ago. 2019). DAOS ack: An Ope a ing Sys em o Collec i e In elligence, 2018 [en línea]. A ailable: h ps://daos ack.io/wp/DAOs ack-Whi e-Pape -en.pd [5] Ga in Wood (23 ago. 2019) PolkaDo : Vision o a he e ogeneous mul i-chain amewo k, [en línea]. A ailable:h ps://polkado .ne wo k/PolkaDo Pape .pd [6] Polkado Team (23 ago. 2019) Announcing PolkaDAO: Fund You P ojec !  , 2019 [en línea]. A ailable: h ps://medium.com/polkado -ne wo k/announcing-polkadao- und-you -p ojec -1891e6d895a [7] Ma an Field (24 ago. 2019). Holog aphic consensus - pa 1  , 2018 [en línea]. A ailable: h ps://medium.com/daos ack/holog aphic-consensus-pa -1-116a73ba1e1c [8] Daniel K ono e (25 ago. 2019). A agon, DAOS ack, Colony, Moloch  , 2019 [en línea]. A ailable: h p://k onosapiens.gi hub.io/blog/2019/06/16/a agon-daos ack-colony-moloch.h ml [9] Alex Rea, A on Fische , Jack du Rose (26 ago. 2019). Colony, Technical Whi e Pape  , 2019 [en línea]. A ailable: h ps://colony.io/whi epape .pd [10] A agon Team (1 jul. 2019). A agon Whi epape  [en línea]. A ailable: h ps://gi hub.com/a agon/whi epape [11] A agon Team (26 ago. 2019). In oducing A agon Nes  , 2017 [en línea]. A ailable: h ps://blog.a agon.o g/in oducing-a agon-nes -1aa8c91c0566/ [12] A agon Team (26 ago. 2019). A agon Nes  [en línea]. A ailable: h ps://gi hub.com/a agon/nes [13] Luke Duncan, (18 ago. 2019) A agon Ne wo k and Token P ime  , 2019 [en línea]. A ailable: h ps://blog.a agon.one/a agon-ne wo k-and- oken-p ime / 102 [14] Luis Cuende (1 jul. 2019). AGP-0: The A agon Mani es o,  2018 [en línea]. A ailable:h ps://gi hub.com/a agon/AGPs/blob/mas e /AGPs/AGP-0.md [15] Make Team (22 ago. 2019). The Dai S ablecoin Sys em  , 2017 [en línea] A ailable: h ps://make dao.com/whi epape /Dai-Whi epape -Dec17-en.pd [16] Ke man Kholi (22 ago. 2019). Wha ’s Make DAO and wha ’s going on wi h i ? Explained wi h pic u es  , 2019 [en línea].  A ailable: h ps://hacke noon.com/wha s-make dao-and-wha -s-going-on-wi h-i -explained-wi h-pic u es - 7eb 774e9c2 [17] Paul Seidle , Paul Kolling y Max Hampshi e.  e a0, Can an augmen ed o es own and u ilise i sel ?  , 2016 [en línea]. A ailable: h ps://www. e a0.o g/asse s/pd / e a0_whi e_pape _2016.pd [18] Maximilian Schwa zmülle . A ailable: Reac - The Comple e Guide (incl Hooks, Reac Rou e , Redux)  [en línea]. A ailable: h ps://www.udemy.com/ eac - he-comple e-guide-incl- edux/ [19] S ephen G ide . E he eum and Solidi y: The Comple e De elope 's Guide  [en línea]. A ailable: h ps://www.udemy.com/cou se/e he eum-and-solidi y- he-comple e-de elope s-guide/ [20] Communi y Ini ia i e: A agon Coope a i e  (4 jun. 2019) [en línea]. A ailable: h ps:// o um.a agon.o g/ /communi y-ini ia i e-a agon-coope a i e/356 [21] A agon In e na ionaliza ion E o  (27 may. 2019) [en línea]. A ailable: h ps://de pos .com/so wa e/a agon-in e na ionaliza ion-e o -no0 7 [22] Usman W. Chohan. The Double Spending P oblem and C yp ocu encies,  2017  (5 ago. 2019) [en línea]. A ailable:h ps://pape s.ss n.com/sol3/pape s.c m?abs ac _id=3090174 [23] Vi alik Bu e in (2 jul. 2019). An In oduc ion o Fu a chy  , 2014  [en línea]. A ailable: h ps://blog.e he eum.o g/2014/08/21/in oduc ion- u a chy/ [24] And ew Leona d (5 jul. 2019).Can A agon Build an Uns oppable Robo ic Go e nmen ? [en línea]. A ailable: h ps://b eake mag.com/can-a agon-make-decen alized-au onomous-go e nance-wo k/ [25] Menajem Benchimol (20 ago. 2019). Decen alized Au onomous O ganiza ions (DAOs) Will Enable Fas e Decision Making Tools Fo Leade s  , 2019 [en línea]. A ailable: h ps://hacke noon.com/decen alized-au onomous-o ganiza ions-daos-will-enable- as e -de cision-making- ools- o -leade s-49c ea72d086 103 [26] An onio Madei a (19 ago. 2019). The Dao, he Hack, he So Fo k and he Ha d Fo k  , 2019 [en línea]. A ailable: h ps://www.c yp ocompa e.com/coins/guides/ he-dao- he-hack- he-so - o k-and- he-ha d- o k/ [27] Samuel Falkon (19 ago. 2019). The S o y o he DAO — I s His o y and Consequences  , 2017 [en línea]. A ailable: h ps://medium.com/swlh/ he-s o y-o - he-dao-i s-his o y-and-consequences-71e6a8a551ee [28] E ic Go ski (19 ago. 2019). In oducing he dxDAO  , 2018 [en línea]. A ailable: h ps://blog.gnosis.pm/in oducing- he-dxdao-27ec4301eced [29] ConsenSys (19 ago. 2019). The dxDAO Awakens: How o Pa icipa e and Become a dxDAO S akeholde  , 2019 [en línea]. A ailable: h ps://media.consensys.ne / he-dxdao-awakens-how- o-pa icipa e-and-become-a-dxdao-s akeholde -cc3ed713b 53 [30] Jo ge Izquie do, Ramon Recue o (6 ago. 2019). The u u e o o ganiza ions  , 2018 [en línea]. A ailable: h ps://blog.a agon.one/ he- u u e-o -o ganiza ions/ [31] Quiao Wang (6 ago. 2019) C yp one wo ks and he heo y o he i m,  2018 [en línea]. A ailable: h ps://www. okendaily.co/blog/c yp one wo ks-and- he- heo y-o - he- i m [32] Jo ge Izquie do, A agon One (17 ago. 2019). Deploying and dis ibu ing he A agon clien  , 2018 [en línea]. A ailable: h ps://blog.a agon.o g/deploying-and-dis ibu ing-a agon-co e-11e70cbc9b50/ [33] Go ka Ludlow (16 ago. 2019). A agon F on end Walk h ough  , 2019 [en línea]. A ailable: h ps://blog.a agon.one/a agon- on end-walk h ough/ [34] S e en Mckie (6 ago. 2019). The Yea o he DAO Comeback  , 2019 [en línea]. A ailable: h ps://medium.com/amen um/ he-yea -o - he-dao-comeback-9c888b44980 [35] Luis Cuende, A agon Team, A agon One Team (15 ago. 2019). Building a decen alized OS  , 2018  [en línea]. A ailable: h ps://blog.a agon.o g/building-a-decen alized-os/ [36] Jo ge Izquie do, A agon Team (15 ago. 2019). )A ailable:In oducing a agonOS: Say hi o modula and ex endable o ganiza ions [en línea]. A ailable: h ps://blog.a agon.o g/in oducing-a agonos-say-hi- o-modula -and-ex endable-o ganiza ion s-8555a 1076 3/ [37] Jo ge Izquie do, A agon Team (15 ago. 2019). In oducing a agonOS 3.0 alpha, he new ope a ing sys em o p o ocols and DApps  [en línea]. A ailable: 104