|
| 1 | + |
| 2 | + |
| 3 | +# Heimdall v2 changes compared to v1 |
| 4 | + |
| 5 | +There are a number of differences between Heimdall v1 to v2. These changes are outlined below: |
| 6 | + |
| 7 | +## Encoding changes to Base64 |
| 8 | + |
| 9 | +Data encoding format has been changed from Hex encoded to Base64 encoded, for example: |
| 10 | + |
| 11 | +Hex encoded: `BJSk2KCI4snP2Cw/ntDdgp8R25XJ2xg18KL67fyEAwgtPMpeq5APSUHrkv5wtgrFfpmcDivnP8HPGufyyXnByxo=` |
| 12 | + |
| 13 | +Base64 encoded: `0x0494a4d8a088e2c9cfd82c3f9ed0dd829f11db95c9db1835f0a2faedfc8403082d3cca5eab900f4941eb92fe70b60ac57e999c0e2be73fc1cf1ae7f2c979c1cb1a` |
| 14 | + |
| 15 | +## Validator signing key |
| 16 | +In Heimdall v2, validator signing keys must be imported into the keyring for transaction signing. For details of keyring, refer to the Cosmos SDK documentation [here](https://docs.cosmos.network/v0.46/run-node/keyring.html) |
| 17 | + |
| 18 | +From the Cosmos documentation: |
| 19 | + |
| 20 | +>The keyring holds the private/public keypairs used to interact with a node. For instance, >a validator key needs to be set up before running the blockchain node, so that blocks can >be correctly signed. The private key can be stored in different locations, called >"backends", such as a file or the operating system's own key storage. |
| 21 | +
|
| 22 | +### How to use Keyring |
| 23 | + |
| 24 | +Below are the instructions on how to import your validator private key into the keyring and use it to sign transactions. |
| 25 | + |
| 26 | +Get your `base64` encoded private key from: |
| 27 | + |
| 28 | +```cat /var/lib/heimdall/config/priv_validator_key.json``` |
| 29 | + |
| 30 | +Convert the `base64` encoded key to hex encoded key: |
| 31 | + |
| 32 | +```echo "<PRIVATE_KEY_BASE64_ENCODED>" | base64 -d | xxd -p -c 256``` |
| 33 | + |
| 34 | +Import the `hex` encoded key to your keyring: |
| 35 | + |
| 36 | +```heimdalld keys import-hex <KEY_NAME> <PRIVATE_KEY_HEX_ENCODED> --home <HOME_DIR_PATH>``` |
| 37 | + |
| 38 | +When you first import a key into the keyring, you will be prompted for a password, which will be used every time you sign a transaction. |
| 39 | + |
| 40 | +When running a `tx` command, just specify the `--from` argument, by using the name of the key you have set above. Example: |
| 41 | +```heimdalld tx gov vote 1 yes --from <KEY_NAME>``` |
| 42 | + |
| 43 | +## Vote extension in each block |
| 44 | + |
| 45 | +In Heimdall v2, the first transaction of each block will contain the encoded vote extensions. To decode these, use the additional command in `heimdallld` |
0 commit comments