Differences with Tezos

This is a list of differences between Dune Network, for users coming from the Tezos ecosytem. These differences are expected to increase a lot in the next months.

Changes on Sept 11, 2019

License:

  • License of Dune Network is GPLv3

Constants:

  • A roll on Dune Network is 10,000 DUN (instead of 8,000 XTZ)

  • An operation is kept in the mempool for 8 blocks (instead of 60 blocks)

  • Deposits and rewards are set to 0 during the first 72 cycles.

  • Cycles between 1 and 64 had a length of 64 blocks, with one block every 64 minutes

RPC calls:

The following RPCs have been added:

  • /dune/version returns the current version, build date and GIT branch/commit

  • /dune/banned/peers returns the list of banned peers

  • /dune/banned/points returns the list of banned points

  • /chains/main/blocks/<block_hash>/context/codes/code/<script_expr> returns the code associated with a script hash

  • /chains/main/blocks/<block_hash>/context/codes/known returns the script hash associated with some code

Operations:

Ballot and Proposals operations are disabled.

Activate_protocol and Manage_accounts are two new operations, the can only be injected by the Dune Foundation. Activate_protocol can change the protocol, or change the constants. Manage_accounts can transfer tokens to commitments (Tezos ICO codes, Dune Faucet), change the Dune Foundation key or set the bakers of the Dune Foundation in a no-deposit-no-rewards mode.

Smart Contracts:

Developers of smart contracts on the Dune Network can specify “Fee Code”, some code to allow users to ask the contract to pay the fees.

Michelson:

The following instructions have been added:

  • GET_BALANCE: contract 'p : 'S -> mutez : 'S returns the balance of another contract

  • BLOCK_LEVEL: 'S   ->   nat : 'S: return the current block level

  • IS_IMPLICIT: contract unit : 'S -> option key_hash : 'S: returns the key hash of the contract

  • COLLECT_CALL: 'S -> bool : 'S: returns whether the current contract is paying the feees

Command Line Client:

The following commands have been added:

  • dune gen print keys generate a key pair and prints it

  • dune decode b58check <b58check> prints in hexa a b58 encoded value

  • dune print key hashes <keyhash> prints equivalence between dn1 and tz1 addresses

  • dune ledger becomes baking <account-alias-or-ledger-uri> switches a Ledger nano S running the Dune app to baking mode

  • dune ledger becomes wallet <account-alias-or-ledger-uri> switches a Ledger Nano S running the Dune app to wallet mode (and ask for PIN)

  • dune batch transfer <total> from <src> to <file> generates a single operation with multiple transfers

The following commands have been modified:

  • setup ledger to bake for <account-alias-or-ledger-uri> accepts a new argument --more to add a second or third baking key in a Ledger app in baking mode. Use deauthorize or switch to wallet mode to remove all keys.

For node developers, the following commands have been added:

  • dune generate genesis hash

  • dune find base58 prefix <target> for size <hash_size>

  • dune hexa to json

  • dune hash file <data>

  • dune hash string <data>

  • dune manage accounts with key <activator> and parameters <parameters>

  • dune activate protocol <version> with key <activator> and parameters <parameters> at level <level>

Command Line Signer:

The signer implements a “proxy” mode:

  • Previously, the baker on a computer would connect to a signer on another computer, where the hardware wallet is plugged.

  • In Proxy mode, the baker connects to a “proxy” signer on the same computer. Another signer, in “reverse” mode, on another computer, where the hardware wallet is plugged, connects to the “proxy” signer.

The “proxy” signer must be started with the option --proxy so that it waits for another signer connection. The connecting proxy must be started with launch reverse socket signer.

Dune Ledger App:

  • There is only one app for Dune on Ledger Nano S, but the app can switch between wallet mode and baking mode.

  • The Dune Ledger app can be configured to bake for 1 to 3 keys at the same time.

  • The maximal BIP32 path has length 5 instead of 10.

  • Parsing of new operations and more former operations

  • One critical security bug fixed