QTUM: Video Demostración del Protocolo de Gobernanza Descentralizada

Qtum Español
4 min readFeb 28, 2019

--

AlexisFollow

Feb 8

image showing the demo successfully changed the minimum gas price from 40 satoshi to 80

En mi artículo anterior, proporcioné una descripción general simple del Protocolo de Gobernanza Descentralizada (DGP) de Qtum y su estado actual en Qtum. Con el fin de dar un aspecto más preciso y técnico a DGP, he realizado un video tutorial que demuestra DGP en acción en un entorno de Qtum regtest. En este tutorial, seguiré un conjunto de comandos que se me entregaron para demostrar DGP en acción por Neil Mahi, uno de los fundadores de Qtum. Lo guiaré a través de lo que estamos haciendo en cada paso, lo que significa, cómo entender los comandos, de tal manera que pueda seguirlos y hacerlo también en casa.

Lo haremos asi:

  • crear un pequeño conjunto de administradores y partidos de gobierno
  • Demostrar la adición de la propuesta del partido administrador / gobierno y votar por ella
  • demostrar el aumento de los votos del administrador / gobierno que se requieren para aprobar una propuesta de “propuesta de cambio de valor” y votar por ella
  • Creando un contrato de cambio de valor inteligente
  • demostrar una propuesta de cambio de valor (en este caso para el precio mínimo del gas) y votar por ella
  • demostrando que hemos cambiado con éxito el valor de consenso para el precio mínimo del gas

(el video está en YouTube, que actualmente no cumple con DNT, haga clic en el siguiente link para verlo : https://youtu.be/UhHzJcRkl6s)

Aquí están los enlaces en el video:

Qmix
Edit descriptionqmix.blockchainspaceman.com

qtumproject/qtum-dgp
Contribute to qtumproject/qtum-dgp development by creating an account on GitHub.github.com

Aquí está el contrato inteligente para el precio mínimo del gas:

pragma solidity ^0.4.8;contract minGasPrice{uint32[1] _minGasPrice=[80 //min gas price in satoshis];function getMinGasPrice() constant returns(uint32[1] _gasPrice){return _minGasPrice;}}

Aquí está el código de bytes para el contrato inteligente:

6080604052602060405190810160405280605060ff16815250600090600161002892919061003b565b5034801561003557600080fd5b5061010e565b8260016007016008900481019282156100ca5791602002820160005b8382111561009857835183826101000a81548163ffffffff021916908360ff1602179055509260200192600401602081600301049283019260010302610057565b80156100c85782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610098565b505b5090506100d791906100db565b5090565b61010b91905b8082111561010757600081816101000a81549063ffffffff0219169055506001016100e1565b5090565b90565b61015f8061011d6000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633fb5881914610046575b600080fd5b34801561005257600080fd5b5061005b610099565b6040518082600160200280838360005b8381101561008657808201518184015260208101905061006b565b5050505090500191505060405180910390f35b6100a1610110565b6000600180602002604051908101604052809291908260018015610106576020028201916000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116100c95790505b5050505050905090565b6020604051908101604052806001906020820280388339808201915050905050905600a165627a7a72305820521e4650ac723cc5046bec623cccc3af87ea598afb5b367d50fbf75c55afa1230029

Aquí están las funciones de contrato inteligente DGP en hexadecimal:

bf5f1e83: addAddressProposal(address,uint256)e9944a81: alreadyVoted(address,address[])19971cbd: changeValueProposal(uint256,uint256)850d9758: getAddressesList(uint256)3a32306c: getArrayNonNullLength(address[])0c83ebac: getCurrentOnVoteAddressProposal(uint256,uint256)5f302e8b: getCurrentOnVoteStatus(uint256,uint256)4364725c: getCurrentOnVoteValueProposal(uint256)f9f51401: getCurrentOnVoteVotes(uint256,uint256)15341747: getParamAddressAtIndex(uint256)27e35746: getParamCount()8a5a9d07: getParamHeightAtIndex(uint256)f769ac48: getParamsForBlock(uint256)1ec28e0f: getRequiredVotes(uint256)6b102c49: isAdminKey(address)7b993bf3: isGovKey(address)4cc0e2bc: removeAddressProposal(address,uint256)6fb81cbb: setInitialAdmin()bec171e5: tallyAdminVotes(address[])4afb4f11: tallyGovVotes(address[])

Aquí están los comandos que usé en el video:

1 establece ADMIN1 como administrador inicial

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 6fb81cbb 0 250000 0.0000004 $ADMIN1

2 generar un bloque

./qtum-cli generate 1

3 agregue una propuesta para agregar ADMIN2 como administrador, se aceptará directamente ya que los votos mínimos requeridos para la administración aún son 0 y la creación de la propuesta también votará por ella

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-ADMIN2-HEX/0000000000000000000000000000000000000000000000000000000000000000 0 250000 0.0000004 $ADMIN1

4 generar un bloque

./qtum-cli generate 1

5 agregue una propuesta para requerir 2 votos de administrador para las administraciones, se aceptará directamente ya que los votos mínimos requeridos para la administración aún son 0 y la creación de la propuesta también votará por ella

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 19971cbd00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002 0 250000 0.0000004 $ADMIN1

6 generar un bloque

./qtum-cli generate 1

7 agregar una propuesta para agregar ADMIN3 como administrador

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-ADMIN3-HEX/0000000000000000000000000000000000000000000000000000000000000000 0 250000 0.0000004 $ADMIN1

8 generar un bloque

./qtum-cli generate 1

9 Usa el segundo administrador para votar por la propuesta.

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-ADMIN3-HEX/0000000000000000000000000000000000000000000000000000000000000000 0 250000 0.0000004 $ADMIN2

10 generar un bloque

./qtum-cli generate 1

11 agregar propuesta para agregar GOBIERNO1 como clave de gobierno

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-GOVERNANCE1-HEX/0000000000000000000000000000000000000000000000000000000000000001 0 250000 0.0000004 $ADMIN1

12 generar un bloque

./qtum-cli generate 1

13 Utilice el tercer administrador para votar por la propuesta.

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-GOVERNANCE1-HEX/0000000000000000000000000000000000000000000000000000000000000001 0 250000 0.0000004 $ADMIN3

14 generar un bloque

./qtum-cli generate 1

15 agregar propuesta para agregar GOVERNANCE2 como segunda clave de gobierno

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-GOVERNANCE2-HEX/0000000000000000000000000000000000000000000000000000000000000001 0 250000 0.0000004 $ADMIN1

16 generar un bloque

./qtum-cli generate 1

17 Utilice el segundo administrador para votar por la propuesta.

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-GOVERNANCE2-HEX/0000000000000000000000000000000000000000000000000000000000000001 0 250000 0.0000004 $ADMIN2

18 generar un bloque

./qtum-cli generate 1

19 Utilice uno de los administradores para crear una propuesta que requiera 2 votos de administrador para que los valores de los parámetros de DGP añada una propuesta de dirección para ser aceptada

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 19971cbd00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000 0 250000 0.0000004 $ADMIN1

20 generar un bloque

./qtum-cli generate 1

21 Utilice el segundo administrador para votar por la propuesta.

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 19971cbd00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000 0 250000 0.0000004 $ADMIN2

22 generar un bloque

./qtum-cli generate 1

23 Uso de los administradores para crear una propuesta que requiera 1 voto de la parte gobernante para los valores de los parámetros de DGP.

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 19971cbd00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001 0 250000 0.0000004 $ADMIN1

24 generar un bloque

./qtum-cli generate 1

25 Usa el segundo administrador para votar por la propuesta.

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 19971cbd00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001 0 250000 0.0000004 $ADMIN2

26 generar un bloque

./qtum-cli generate 1

27 Use uno de los administradores para crear una propuesta para agregar una nueva dirección de valores de parámetros DGP usando la dirección del contrato $ CONTRACT

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-CONTRACT-ADDR/0000000000000000000000000000000000000000000000000000000000000002 0 250000 0.0000004 $ADMIN1

28 generar un bloque

./qtum-cli generate 1

29 Utilice el segundo administrador para votar por la propuesta.

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-CONTRACT-ADDR/0000000000000000000000000000000000000000000000000000000000000002 0 250000 0.0000004 $ADMIN2

30 generar un bloque

./qtum-cli generate 1

31 Utilice una de las claves de gobernanza para votar por la propuesta.

./qtum-cli sendtocontract 0000000000000000000000000000000000000082 bf5f1e83000000000000000000000000/REPLACE-WITH-CONTRACT-ADDR/0000000000000000000000000000000000000000000000000000000000000002 0 250000 0.0000004 $GOVERNANCE1

32 generar un bloque

./qtum-cli generate 1

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response