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 May 1, 2020¶
- Backward-compatibility: Dune is backward-compatible with Tezos: all tooling for Tezos should work without modification with a Dune node. Of course, advanced features of Dune will not be available with these tools.
- Metal browser extension: Metal allows Dapps to interact with Dune without compromising secret keys.
- Dune has kept support for Tezos Michelson language
- Dune supports additional smart contract languages:
- Love is a high-level strongly-typed intermediate language, much more amenable than Michelson for auditing, but still easy to formally verify.
- Development of a Solidity parser/type-checker/interpreter is underway, with full compatibility with Ethereum contracts.
- Dune allows direct origination of unparsed contracts, i.e. Michelson code without Micheline parsing
Permissionning and Access Control¶
- Dune supports configuration of private blockchains with permissionning, allowing only known nodes to connect to the network. Permissionning can be configured on-chain (by smart contracts) or off-chain.
- Dune has support for per-account permissionning, allowing administrators to give different rights to different accounts.
- Dune supports a simple RPC authentication scheme
- Dune supports both standard Irmin storage and the new Ironmin Optimized storage with increased performances vs Irmin/Irmin2 and compressed storage.
- Dune provides Account Management features for bakers,
- Setting an account administrator for additional security
- Enabling/disabling delegation
- Clearing all delegations
- Controling the maximal number of rolls
- White-listing accounts allowed to receive transfers from an account
Changes on Sept 11, 2019¶
- License of Dune Network is GPLv3
- 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
The following RPCs have been added:
/dune/versionreturns the current version, build date and GIT branch/commit
/dune/banned/peersreturns the list of banned peers
/dune/banned/pointsreturns 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/knownreturns the script hash associated with some code
Proposals operations are disabled.
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.
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.
The following instructions have been added:
GET_BALANCE: contract 'p : 'S -> mutez : 'Sreturns 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 keysgenerate 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
--moreto add a second or third baking key in a Ledger app in baking mode. Use
deauthorizeor 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
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