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 oTokenManage
, 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. Decen 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. Au 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
op 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 yTokenManage 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 yTokenManage 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
yTokenManage 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
yTokenManage
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 oE 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