Skip to content
/ Ciudades-DAO Public template

Aplicación para descentralizar la gobernanza en ciudades y organizaciones urbanas.

Notifications You must be signed in to change notification settings

zenbitETH/Ciudades-DAO

Repository files navigation

🗳️ Ciudades DAO - Manual de Uso

Índice

1.🗳️ Descripción General
2.🗺️ Proceso General
3.🎩 Tipos de usuario
4.🕹️ Flujo para ciudadanos y representantes de gobierno
5.🎮 Flujo para representantes de organizacionees urbanas y desarrolladores
6.🌐 Atención a usuarios y colaboraciones

1. Descripción General

Ciudades DAO es una bien publico digital desarrollado con herramientas Web3 que facilitan la descentralización, coordinación y consenso de organizaciones urbanas mediante una entidad de gobernanza digital que no puede ser censurado o alterado, el cual incentiva la participación en la gobernanza urbana para generar información sobre una colonia, ciudad o región.

1a Requisitos minimos:

Para usar Ciudadades DAO debes tener acceso a los siguientes dispositivos, servicios y herramientas digitales.

Requisitos de sistema:

  • Dispositivo movil, PC o Laptop
  • Conexión a Internet
  • Navegador Web
  • Cartera Web3 (wallet)
  • Conexión a Red de Pruebas Polygon Mumbai
  • Gas (Matic de prueba) para transacciones

Requisitos de usuario

Además de los requisitos de sistema, para usar Ciudades DAO deberás contar con estas habilidades. ¿Ni idea de que hacer? No te preocupes, continua leyendo y serás recompensado al desarrollar estas habilidades usando Ciudades DAO.

  • Conocimiento o experiencia en participación ciudadana, gobernanza o activismo urbano.
  • Habilidades digitales en navegación en internet y búsqueda de información.
  • Habilidades digitales en el uso de redes sociales.
  • Habilidades digitales en el uso de Google Maps
  • Habilidades digiales en el uso de herramientas Web3 de Ethereum
  • Habilidades digiales en el uso de herramientas Web3 de IPFS

1b Componentes de la aplicación

En este repositorio de código encontrarás todos los componentes necesarios para conectarte a Ciudad DAO desde tu dispositivo, o usarlo como plantilla para implementar el modelo de Gobernanza DAO en una organización urbana. Ciudades DAO se compone de:

  • Contrato Inteligente para "Gobernador Alfa para Ciudades DAO" Contrato escrito en lenguaje de programación solidity para descentralizar la gobernanza de una ciudad u organización urbana mediante un gobernante digital incorruptible, transparente y que cuide de la privacidad de sus usuarios.
  • Contrato Inteligente para token de Gobernanza DAO "VOTO" Contrato escrito en lenguaje de programación solidity para generar activos digitales que funcionan como unidades de recompensas por el desarrollo de habilidades digitales y generación de propuestas en Ciudades DAO y como unidad para votar esas propuestas en la gobernanza DAO.
  • Interfaz de Usuarios Aplicación web desarrollada con React y funciones Web3 para comunicar a los usuarios con los contratos inteligentes de Ciudades DAO.

2.🗺️ Proceso general

Para usar Ciudades DAO primero deberás cumplir los Requisitos del Sistema para conectarte a la aplicación pública en ciudadesdao.zenbit.mx, si no cuentas con ellos sigue este tutorial y sigue el paso a paso para tener todo listo.

Proceso de validación

Una vez que tengas los Requisitos del sistema deberás conectarte a la aplicación, asi podrás comunicarte con el contrato Gobernador Alfa con tu cartera Web3 sin necesidad de darle ninguno de us datos personales. Una vez conectado, deberás validar con Gobernador Alfa que cuentas con las habilidades digitales para usar esta aplicación. Para ello puedes seguir este tutorial donde encontrarás lo necesario que pasar la prueba Web3 contestando el cuestionario y comprobar que cuentas con las habilidades para usar Cuidades DAO. Por cada pregunta correcta obtendrás 20 tokens VOTO, por lo que si contestas las 5 preguntas correctamente podrás obtener hasta 100 tokens VOTO como recompensa.

Proceso de Gobernanza DAO

Una vez que Gobernador Alfa haya validado que cuentas con las habilidades digitales para usar Ciudades DAO podrás acceder a la gobernanza para realizar y votar propuestas que resuelvan necesidades de tu ciudad o apoyar la causa de alguna organización urbana. Los tokens VOTO que hayas obtenido en la validación los podrás usar para votar las propuestas disponibles y por cada propuesta que realices obtendrás 10 VOTO adicionales. De modo cada usuario tendrá diferente poder de voto y decisión en las propuestas, dependiendo de su proactividad y creatividad para proponer soluciones urbanas.

3.🎩 Tipos de usuario y función principal

Se consideran 4 tipos de usuario para Ciudades DAO los cuales se definen dependiendo de las habilidades digitales y objetivos al usar la aplicación, se anticipa mientras menos habilidades digitales se requieran más abundante será el tipo de usuario, por lo que aquellos que requieren especialización o coordinación de grupos, serán menos frecuentes.

🦸🏽🦸🏻‍♀️ Ciudadanos / Propuestas de gobernanza urbana

Ciudad DAO tiene origen como organización urbana en Querétaro con la función de recopilar un sistema en web2 de datos para ciudadanos. Por lo que la mayoria de las interacciones de la aplicación se enfocan en la experiencia de usuario para estas personas. Las habilidades requeridas para este usuario son minimas y buscan incentivar la participación ciudadana en la resolución de problemas urbanos a través de propuestas que pueden ser votadas por otros participantes de la aplicación para su aceptación y seguimiento.

👩‍💼👨‍💼 Representante de gobierno / Seguimiento de propuesta

Si bien la descentralización que ofrece Ciudad DAO empodera la coordinación de ciudadanos y organizaciones urbanas, no pretende generar conflicto con la administración pública tradional, sino complementar los sistemas de participación ciudadana y las carencias generadas por la insuficiencia del presupuesto público en las administraciones gubernamentales de las ciudades. Para ello Ciudades DAO considera a los representantes de gobierno o servidores públicos como un rol fundamental para dar seguimiento a las propuestas realizadas en Ciudad DAO para cubrir el vacio legislativo entorno a la operación y regulación de Organizaciones Autónomasa Descentralizadas, tecnologías Web3 y los nuevos modelos de negocio generados entorno a bienes públicos y economía regenerativa.

✊🌆Representante de organización urbana / Causas

Los representantes de organizaciones urbanas son el motor de la resolución de problemas en las ciuades, ya que son quienes dan pasos adicionales que los ciuadanos al establecer procesos, ideas y proyectos con mayor complejidad o que en conjunto pueden tener un mayor impacto para la ciudad que los esfuerzos individuales. El esfuerzo extra también requiere mayores habilidades para leer y escribir en javascript, solidity, HTML y CSS. Estas habilidades no son solo para producir contenido para la aplicación original sino también para que tomes Ciudades DAO como plantilla y puedas personalizarlo para tu ciudad o para una organización urbana en específico. En el flujo de usuarios encontrarás información detallada si tu interés como representan es tomar este repositorio para personalizarlo a la imagen y objetivos de la organización urbana que representes.

🧑🏽‍💻👩🏽‍💻 Desarrollador / Añadir funciones a la DAO

Si tu interés se encuentra más en construir y conocer nuevas herramienas que la participación ciudadana, también puedes participar como Desarrollador en el proceso implementación de Ciudads DAO y colaborar en la investigación y desarrollo colectivos para construir nuevas aplicaciones que complementen el funcionamiento de ciudades DAO. Puedes colaborar con el desarrollo conociendo el flujo para desarrolladores o escribenos en github desde el repositorio de Ciudades DAO.

4.🕹️ Flujo para ciudadanos y representantes de gobierno

4a. Cumplir requisitos mínimos

Todos los usuarios deben cumplir con los requisitos de sistema para poder interactuar o personalizar el contenido de Ciudades DAO.

4b. Preparación de herramientas Web3

Para acceder a la aplicación pública visita https://ciudadesdao.org no necesitas tus datos personales para regisrarte, en su lugar ocuparás ocuparás 3 herramientas de la Web3:

Cartera Web3.

Descarga e instala una cartera Web3 en tu dispositivo móvil, pc o laptop. En el proceso deberás escribir y guardar las 12 palabras secretas de tu dirección para que puedas recuperar tu cuenta si cambias o extravias tu equipo o bien si deseas acceder desde diferentes equipo.

ATENCIÓN Las 12 palabras secretas de tu cartera Web3 es el único metodo para acceder o recuperar tu cuenta, SOLO TU tienes acceso a ellas en el momento que creas tu cartera. Ni Metamask, ni Ciudades DAO, ni zenbit.eth o ningún intermediario tiene acceso a las 12 palabras secretas.

Cambiar a Red de Pruebas Polygon Mumbai.

Ya que Ciudades DAO se encuentra en fase de desarrollo, todas las transacciones ocurren en una red de pruebas pública, la cual funciona de manera similar a una red principal de blockchain con la diferencia de que los activos y herramientas no tienen valor monetario por lo que las cuotas de gas son simbolicas y tienen un enfoque didactico. En la pantalla principal de Ciudades DAO toca el boton de en medio para conectar tu cartera a la red de pruebas con mayor facilidad.

Obtener Matic de prueba para las pagar las cuotas de gas.

Una vez en la red de pruebas, accede al tercer enlace de la pantalla principal de Ciudades DAO para ir al expendio de Matic de prueba el cual te servirá para pagar las cuotas de gas que cambian el estado de los contratos inteligentes. Solo tendrás que copiar y pegar tu dirección pública en el campo de "Wallet Address", presionar el botón "Submit" y en unos cuantos segundos tu cuenta tendrás Matic de prueba.

Una vez que tengas tu cartera conectada a la red de pruebas de Polygon Mumbai y lista con Matic de prueba que obtuviste del expendio, estas listo para conectar tu cartera y empezar a usar Ciudades DAO. Conectate presionando el botón azul en la parte inferior de la pantalla principal y acepta la conexión con Ciudades DAO desde tu Cartera Web3 para desbloquear la aplicación.

4c. Validar habilidades digitales para Web3

Con tu cartera conectada a Ciudades DAO ahora podrás ver las 3 actividades a realizar en la aplicación: 1. Validar tu cuenta, 2. Generar propuestas y 3. Votar por las propuestas. Sin embargo notaras que la segunda y tercera están bloqueadas hasta que completes la validación de tu cuenta. Para validar tu cuenta deberas comprobarle a Gobernador Alfa que tienes las habilidades digitales para interactuar con herramientas Web3 mediante un cuestionario de 5 preguntas relacionadas con su funcionamiento.

Por cada respuesta correcta obtendrás 20 tokens VOTO, por lo que podrás obtener hasta 100 tokens VOTO si contestas todas las preguntas correctamente. Los tokens VOTO que obtengas podrás usarlos para votar tus propuestas de gobernanza DAO o las propuestas de otros participantes. La validación con Gobernador Alfa tendrá duración de 30 días a partir de la fecha de validación, tras este periodo deberás realizar la validación de nuevo la cual puede contener diferentes preguntas según la evolución o enfoque de los participantes.

4d. Gobernanza DAO

Una vez validado se desbloquearán las 2 interacciones de gobernanza DAO: podras realizar propuestas de gobernanza sobre tu ciudad y también podrás usar tus tokens VOTO para votar tus propuestas o las de otros participantes.

Proponer

Para hacer una propuesta toca el botón de Proponer desde la pantalla desbloqueada de Ciudades DAO para acceder a la pantalla en la que podrás describir y detallar tu propuesta antes de enviarla al Gobernador Alfa para que sea votada por ti y los otros usuarios de la aplicación. Por cada propuesta publicada recibiras 10 tokens TARO adicionales, esto será valido durante las primeras 20 propuestas que realices mientras la dirección de tu cartera Web3 este validada por el Gobernador Alfa.

Votar

Las propuestas realizadas estarán disponibles para votar durante 15 días en la sección de DAO, con el total de tokens VOTO que tengas podrás votar a favor o en contra de las propuestas y trás los 15 días el contrato Gobernador Alfa determinará el resultado de la votación dependiendo de los votos a favor y en contra que reciba la propuesta y la archivará en el historial de propuestas según su resultado.

4e. Historial y resultados

Las propuestas en las que haya expirado el tiempo de votación serán mostradas en la sección de Propuestas Anteriores y podrás consultar entre las que fueron aprobadas y las que fueron rechazadas. Si bien los resultados de las votaciones de estas propuestas no son vinculantes con la legislación municipal de las ciudades, establece un cambio de paradigma en cómo se registra y almacenan los datos urbanos y cómo las herramientas de la Web3 ayudan a resolver las fallas de coordinación causadas por la centralización de gobiernos, servicios y bienes públicos.

Para continuar con la conversación generada por las propuestas realizadas en Ciudades DAO, te invitamos al servidor de Ciudades DAO en Discord, donde podrás conectar con otros ciudadanos, representantes y desarrolladores para retroalimentar ideas, comentar funcionalidades por implementar o para personalizar este repositorio e implementarlo en tu ciudad u organización urbana.

También te invitamos a consultar la rama de Ciudades DAO "VoTARO Ciudad DAO" donde encontrarás el ejemplo de cómo los contratos y la interfaz de usuario puede ser personalizada para implementarse en una ciudad.

5. 🎮 Flujo para representantes de organizacionees urbanas y desarrolladores

5a. Dependencias

Para usar personalizar y compilar el código de Ciudad DAO desde tu PC o laptop, deberás instalar en tu sistema operativo las siguientes dependencias:

1. Node.js
2. Git
2. Entorno integrado de desarrollo (IDE)
3. Navegador Web

5b. Comandos para iniciar

Ejecuta estos comandos en la terminal desde la ubicación de carpeta que eligas para descargar el repositorio de Ciudades DAO. 2a. Descargar repositorio:

  git clone https://github.com/zenbitETH/Ciudades-DAO

Desde la carpeta raiz de Ciudades DAO instala los paquetes y dependencias para trabajar con los contratos inteligentes y con la interfaz de usuario. 2b. Instala paquetes y dependencias para contratos inteligentes:

  npm install

2c. Instala paquetes y dependencias para la interfaz de usuario

  cd frontend
  npm install

Una vez que tengas instalados los paquetes y dependencias para los contratos inteligentes y la interfaz de usuario, deberás modificar y añadir algunos archivos para que funcione tu aplicación. 2d. Entorno de desarrollo básico:

  Modifica el nombre de la carpeta:
  ../Frontend/src/EjemploCuestionario
  por:
  ../Frontend/src/Cuestionario

Crea una cuenta en infura para acceder a un nodo conectado a la red de pruebas de Polygon Mumbai y que tu aplicación se pueda comunicar con los contratos de Ciudades DAO desplegados en esa red.

En la carpeta raiz, ve a:
../hardhat.config.js
  
Añade en la linea 53 el URL del nodo de Polygon Mumbai que obtengas en infura
52 mumbai: {
53      url: "https://polygon-mumbai.infura.io/v3/numerosdetuURL",

5c. Iniciar interfaz de usuario en servidor local

Con el entorno de desarrollo básico listo, ahora debes ir a la carpeta Frontend e iniciar la compilación de la aplicación en un servidor local para conectarte con los contratos inteligentes de Ciudades DAO desplegados en la red de pruebas Polygon Mumbai.

**Iniciar la interfaz de usuario:

  cd frontend
  npm start

A partir de este punto puedes personalizar la interfaz de usuario con los colores, textos e imagenes que tu prefieras, pero seguira conectada a los contratos de Ciudades DAO, si deseas personalizar y usar tus propios contratos, continua leyendo en el punto 4 Personalizar contratos.

5d. Personalizar contrato Gobernador Alfa

Para personalizar los contratos inteligentes de Ciudades DAO deberás añadir al entorno de desarrollo de la aplicación la llave privada de la dirección que desplegara tus conttratos inteligentes y la llave API de Polygonscan que obtienes al registrarte en ese explorador de bloques. 4a. Entorno de desarrollo avanzado

  Modifica el nombre del archivo en la carpeta raiz:
  ../ejemplo.env
  por:
  ../.env
  
Abre el archivo .env y añade tus llaves en:
PRIVATE_KEY = 'LOS NUMEROS Y LETRAS DE TU LLAVE PRIVADA'
POLYGONSCAN_API_KEY = 'LOS NUMEROS Y LETRAS DE LA LLAVE API DE POLYGONSCAN'

Con el entorno de desarrollo avanzado listo ahora modifica las variables personalizables del contrato: 4b. Ve a la carpeta de contratos y accede al archivo del contrato Gobernador Alpha:

  ../contracts/GovernorAlpha.sol  

4c Modifica el tiempo para votar propuestas

19    function votingPeriod() public pure returns (uint) { return 1296000; } // ~15 dias en bloques (asumiendo bloques de 15 segundos) 1296000 blocks; 86400 bloques por dia; 3600 por hora)

4d Modifica el número de propuestas que dan recompensa (20 propuestas por default):

132 if(userProposals[msg.sender].count < 20) {

4e Modifica el número de VOTO con los que se recompensan las propuestas (10 VOTO por propuesta por default):

133 bool transferred = voto.transferFrom(address(this), msg.sender, 10e18);

4f Modifica la duración de la validación (1 mes en bloques por default)

171  expirationTime: block.timestamp + 2592000

5e. Personalizar contrato de token VOTO

5a. Ve a la carpeta de contratos y accede al archivo del contrato del token VOTO:

  ../contracts/Voto.sol  

5b Personaliza el número de tokens VOTO disponibles (1,000,000 VOTO por default):

19  uint public constant totalSupply = 1000000e18; // 1 millón de tokens VOTO para Ciudades DAO

5f. Despliegue de contratos

Asegurate de tener Matic de prueba en la dirección que desplegará los contratos y ejecuta el siguiente comando desde la carpeta raiz para desplegar los contratos en red de pruebas Polygon Mumbai:

  npx hardhat run scripts/deploy.js --network mumbai

5d. Publicación de interfaz

Personaliza la interfaz, despliega los contraos y ejectua los siguientes comandos para publicar gratuitamente tu interfaz personalizada (requiere registro con email en Surge desde la terminal)

cd frontend
npm run build
cd build
cp index.html 200.html
surge

6. 🌐 Atención a usuarios y colaboraciones

[email protected] -Registra un issue en este repositorio
-Discord de ususarios Ciudades DAO
-Discord de desarrollo zenbit.eth
-Siguenos en redes sociales como @zenbit.eth

About

Aplicación para descentralizar la gobernanza en ciudades y organizaciones urbanas.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published