Motivación: Al comenzar a evidenciarse mayor participación de la comunidad en la gobernanza, así como varios intentos de fips con airdrops y/o grants retroactivos, me parece que es el momento de darle prioridad a que el governor esté 100% impecable. El governor es el smart contract que a fin de cuentas habilita que se distribuyan los activos de la DAO de manera democrática, siguiendo los procesos de fips y votaciones de los miembros.
Hemos descubierto que en la primera implementación del governor habían algunos parámetros equivocados y nos parece que es el momento ideal para dejar todo correcto.
Método: Ejecutar las transacciones on-chain para que los parámetros del smart contract governor quede correctamente configurados, ajustando el ens de snapshot, la descripción del governor y la llamada dynamicScriptURI. No es más que formalizar, describir y ejecutar a detalle lo descripto en este post anterior Hacer efectiva la FIP-02 del Snapshot elfork.eth 1
Al votar y ejecutar esta FIP, se permite “romper el orden” si hubieran FIPS anteriores que todavía no se hayan ejecutado. Por ejemplo, podemos ejecutar la FIP 10 (la actual) y luego ejecutar la FIP 7, 8 y/o 9 si estuvieran pendientes.
Fases del proceso: Se abrirán los detalles técnicos a todos los interesados, y se responderán las dudas que sean necesarias para que se entienda lo más posible las implicancias de esta FIP, que será bastante técnica.
A modo general, la ejecución requiere:
Crear el dynamicScript que requiere el governor y subirlo a IPFS. Armar la nueva metaEvidence, con las correcciones de ens, description y dynamicScript. Armar la transacción que se requiere para actualizar el governor, pagar el depósito y ejecutar la transacción luego del tiempo optimista del governor. Detalle técnico Luego de crear el smart contract del governor se invocó a una función llamada setMetaEvidence que basicamente deja configurado algunos parámetros del governor. La tx es Gnosis chain transaction 0xa757211005fb54beeec9801d5519b9f15283ad3000498d0480dfe3deb0fde855 | Blockscout y la metaevidence está guardada en ipfs (aquí.
El contenido actual es el siguiente:
{ "category": "Governance", "title": "FORK DAO Governance Dispute", "description": "Disputes in Proof of Humanity Governance arise when more than one list of transactions is submitted to be executed in a session. Each transaction in a list should make an update to the Proof of Humanity contract as voted upon by the registered submissions of Proof of Humanity at https://governance.kleros.io. \n\n See the lists at https://governor.kleros.io", "question": "Which list correctly enforces the governance decisions?", "fileURI": "/ipfs/QmPt2oTHCYZYUShuLxiK4QWH6sXPHjvgXTqMDpCShKogQY/KlerosGovernorPrimaryDocument.pdf", "rulingOptions": {
}, "dynamicScriptURI": "/ipfs/QmdpXXmNxmdmLqZCabRUC9bZ65c2BN54EuUTRi5SdtiHQ4", "metadata": { "spaceURI": "https://snapshot.org/#/elfork.eth/", "space": "elfork.eth" } } Aquí vemos tres datos que están equivocados:
description (habla de cosas de PoH, basicamente por haberlo copiado de ahí) metadata (porque era el primer ens del fork) dynamicScriptURI (esto no es tan claro, pero ahora lo explico) dynamicScriptURI Cuando empezamos a repasar los datos de la metaEvidence, vimos que esto hace referencia a un código que se ejecuta en las cortes de Kleros y que también está copiado del de PoH (que de por sí está en mainnet y no en gnosis). Esto implica que si hay que votar algo en el governor, para los jueces no sea sencillo y terminen sin ejecutar votos.
Para arreglar esto, nos sugirieron de kleros seguir lo indicado aquí. Es decir, alterar ese código para nuestro governor, empaquetar con webpack y subir a ipfs.
Cómo quedaría la nueva metaEvidence? { "category": "Governance", "title": "FORK DAO Governance Dispute", "description": "Disputes in Fork DAO Governance arise when more than one list of transactions is submitted to be executed in a session. Each transaction in a list should enforce a decision that fork dao votes in their governance process. \n\n See the lists at https://governor.kleros.io", "question": "Which list correctly enforces the governance decisions?", "fileURI": "/ipfs/QmPt2oTHCYZYUShuLxiK4QWH6sXPHjvgXTqMDpCShKogQY/KlerosGovernorPrimaryDocument.pdf", "rulingOptions": {
}, "dynamicScriptURI": "/ipfs/QmTUbBoRaQWNK3FLq6sBHyCXrvhvpUzTtmM4HJW2s2ToDX", "metadata": { "spaceURI": "https://snapshot.org/#/fork-dao.eth/", "space": "fork-dao.eth" } } Ticket a ejecutarse en el governor Title: FIP 10 - Ajustar configuración del governor Contract Address: 0xf7dE5537eCD69a94695fcF4BCdBDeE6329b63322 Value: 0 Contract Input Method: changeMetaEvidence Params: _metaEvidence = /ipfs/QmbutStFtqUrixJLSUxSkknvBWZw4F6Wke4h6H1gLMPYVH/metaEvidence.json