Skip to content

WIP: voting commands improvements

Seb Mondet requested to merge sm@voting-improvements into master

This patch-set:

  • Adds --dry-run to both voting commands, and --force to submit proposals.
  • Improves the display of errors and "checks".
  • And adds some more checks/information.

Examples of Output

This is how the checks of submit proposals look like:

There are issues with the submission:
* Public-key-hash `tz1aYQcaXmowUu59gAgMGdiX6ARR7gdmikZk` from account
  `dictator-default` does not appear to have voting rights.
* Protocol PtcTP3DmWzZePrfDyuLaKGKmjx2zPJRiyETv3bDSBN4NV1Ekbdc is not a known
  proposal.
* Protocol PtcTP3DmWzZePrfDyuLaKGKmjx2zPJRiyETv3bDSBN4NV1Ekbdc is not a known
  proposal.
* There are duplicate proposals:
  PsqMEmUVGEhcFK1B6wG57hoTFn1ckePAH2Y2FQqFDnjmnowLDTe,
  PtcTP3DmWzZePrfDyuLaKGKmjx2zPJRiyETv3bDSBN4NV1Ekbdc.

This is how show voting period shows whether a protocol has been fetched by the node:

 $ tezos-client rpc get /protocols

[ "PshuejubNkeGc5nU2xwF7uGzCdujcZY7ZV3duFfffmG4z5SoMAM",
  "PstfKwPVH63iHAfGRVjKCAwruuWMtvmQWJtonFS1doouAWpkjH3",
  "ProtoDemoDemoDemoDemoDemoDemoDemoDemoDemoDemoD3c8k9",
  "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
  "ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im" ]

 $ tezos-client show voting period

Current period: "proposal"
Blocks remaining until end of period: 3
Current proposals:
* PsEUJ6X78R6jEV19hRg5wdypf5chfnMGQqQVG3JXNd5a9ijV8Qu 399 (not known by the node)
* PshuejubNkeGc5nU2xwF7uGzCdujcZY7ZV3duFfffmG4z5SoMAM 399 (known by the node)
* PtEryq5jmynGZfAfQb7Evw4ZBH4Ucn1Jh3hN24J5aP3Gi1KRSWZ 399 (not known by the node)
* ProDLfkDbPg7gf4zGt2znra9FWFe9uuHmpvYkkCZzM2aWGD3udZ 200 (not known by the node)
* Prqg8m9F3MriiJyKuCmQzJEsnTCcYbuiP8TVbAZsFCwLcg8Xavw 200 (not known by the node)
* Prxb97zADA79weKsvjmsqd6ztYjtNdXYHiJkYPbxJj6r5NM4HBd 200 (not known by the node)
* Ps6LVbHPaeVfJe7DELfYncv9mZTRUQmy12wcqu2GWcgbdZBxtZC 200 (not known by the node)
* Ps7H4VK9gRMU9kdw8RteNDZWT51e4U74Aivjs6LcyQ34tgmQ5JF 200 (not known by the node)
* PsBFwj3391bt7u24r44vWz9cbfXZqhQhKuEbCDM4K8BYk1UShVc 200 (not known by the node)
* PsPV5ZRZsTdT6WSS8ehwHARoFZyThpGipfxU8hTKsNbo3rBGM56 200 (not known by the node)
* PsaKxtyuCS7xfNE9cRn7um74n6vG3PCJgkwBZyTNBRXe47PAevy 200 (not known by the node)
* PsfGxJqE8eUpupbKHCPrKM5UxAyeaw2vmxkjg3xxCM4TJEBXeZR 200 (not known by the node)
* PsqMEmUVGEhcFK1B6wG57hoTFn1ckePAH2Y2FQqFDnjmnowLDTe 200 (not known by the node)
* Pt9voHR8FzZUgopzjiKrfEgUHwtUXwa4BTjt8CMKn61BxDVdtV1 200 (not known by the node)
* PtJc8UYi3ha9yG4c1v2GFfwcW7DcA2UpJhT8faSACJ1PzKD4LCv 200 (not known by the node)
* PtWRULfDkFagFRjKEh5kKCUJ5nSFQdmSmE82ooiiTX1oDKuZ7fj 200 (not known by the node)
* PtcXCrhgUC64nn6H9Rzw1yM3xRk14na27piVhx2y6njtGzaYVJm 200 (not known by the node)
* PsPEyDxwmZJoDazbs9V4SmerCZbiCLTCgYVNLG39Qdj8RX2oqVz 199 (not known by the node)
* PstfKwPVH63iHAfGRVjKCAwruuWMtvmQWJtonFS1doouAWpkjH3 199 (known by the node)

Build Unique Protocol Hashes

In case it's useful, how to make protocol hashes with dune utop src/proto_alpha/lib_client_commands:

ocaml# let p s = Tezos_crypto.Protocol_hash.(hash_string [s] |> to_b58check);;
val p : string -> string = <fun>
ocaml# Printf.printf "tezos-client submit proposals for baker-0 %s --force\n%!" (String.concat " \\\n             " @@ List.init 22 (fun i -> p (Printf.sprintf "%d" i))) ;;
tezos-client submit proposals for baker-0 Prqg8m9F3MriiJyKuCmQzJEsnTCcYbuiP8TVbAZsFCwLcg8Xavw \
             PsqMEmUVGEhcFK1B6wG57hoTFn1ckePAH2Y2FQqFDnjmnowLDTe \
             Ps6LVbHPaeVfJe7DELfYncv9mZTRUQmy12wcqu2GWcgbdZBxtZC \
             PsPV5ZRZsTdT6WSS8ehwHARoFZyThpGipfxU8hTKsNbo3rBGM56 \
             PtWRULfDkFagFRjKEh5kKCUJ5nSFQdmSmE82ooiiTX1oDKuZ7fj \
             PsaKxtyuCS7xfNE9cRn7um74n6vG3PCJgkwBZyTNBRXe47PAevy \
             PsfGxJqE8eUpupbKHCPrKM5UxAyeaw2vmxkjg3xxCM4TJEBXeZR \
             ProDLfkDbPg7gf4zGt2znra9FWFe9uuHmpvYkkCZzM2aWGD3udZ \
             PtcXCrhgUC64nn6H9Rzw1yM3xRk14na27piVhx2y6njtGzaYVJm \
             Pt9voHR8FzZUgopzjiKrfEgUHwtUXwa4BTjt8CMKn61BxDVdtV1 \
             PtJc8UYi3ha9yG4c1v2GFfwcW7DcA2UpJhT8faSACJ1PzKD4LCv \
             Prxb97zADA79weKsvjmsqd6ztYjtNdXYHiJkYPbxJj6r5NM4HBd \
             PtEryq5jmynGZfAfQb7Evw4ZBH4Ucn1Jh3hN24J5aP3Gi1KRSWZ \
             PsBFwj3391bt7u24r44vWz9cbfXZqhQhKuEbCDM4K8BYk1UShVc \
             Ps7H4VK9gRMU9kdw8RteNDZWT51e4U74Aivjs6LcyQ34tgmQ5JF \
             PsEUJ6X78R6jEV19hRg5wdypf5chfnMGQqQVG3JXNd5a9ijV8Qu \
             PtcTP3DmWzZePrfDyuLaKGKmjx2zPJRiyETv3bDSBN4NV1Ekbdc \
             PtUnrfPg86aDpqY2g9eTSG7zXG1wPDzDc8MV68f6yDKsb5Va4QN \
             PtNBgBbHL31AsyLmuezRxNJTRobcMxncz5WCBL4SfqtPoecyzs4 \
             Prw1Kp9r68Pjoiyi9PEjwY6mwUP1vZiNzXYbqBdp5XTX8b6ou6p \
             PtNnPJZFr1q44xQ1dTVvSviqoH1Dh182r9HFqjNoxS6ThfETsc1 \
             PtMomAE1hncfVA5nhmtMAkQQ6XRwhts3LUpve5n86b2RLyJaWzN --force
- : unit = ()
Edited by Seb Mondet

Merge request reports