Deth Save

☠️ Ethereum Node focused on Developer Experience

Project README

deth

Deth Node

/ dev nəʊd /

Ethereum Node focused on Developer Experience

Build status Software License

Features

  • RPC support
  • state snapshots (evm_snapshot), time manipulation (evm_increaseTime), mining control (evm_mine)
  • print out decoded logs and calldata for all transactions (even reverted ones!)
  • display revert reasons
  • built-in blockchain explorer
  • ignore nonce errors (perfect while working with Metamask 🦊)
  • much faster (60%) than Ganache

Note: current features represent just a gist of what we want to accomplish

Demo

Installation

npm install --save-dev deth

Getting started

deth [config]

Sample config (we support only .js configs for now):

const BN = require('bn.js')

module.exports = {
  blockchain: {
    accounts: {
      privateKeys: [
        '0x47be2b1589bb515b76b47c514be96b23cd60ee37e81d63c2ae9c92f7d7667e1a',
        '0x72a4d3589099f14b31725dee59b186419bac41c42d2d02b2c70c1a8af2a2b6bb',
        '0x1ff8271bf14ac9bef0b641cced40dc2a7ebd2e37d8e16d25b4aa1911364219af',
        '0x1444ab10c1d1e8aabb89534218854df60d90bb45f39b55634777461d5a465e2e',
        '0xbff5647520d5e327178330ec0085ab27a58fb26ecb942f770397a940fa5c5d29',
        '0x8db53d08e85593ffb623e89e352bfed4eea350e6cc9812f11eac4de576f3cfda',
        '0x24e467ab36f3cf70767135775ec1f7cc2a8b17363055e548113d85072136f945',
        '0xc3bc1a16a82622f9bddf48f8e754c98092755e2e3782aafdca4ce21a1082747f',
        '0xe54c55b3c5d80d445841afa3141e52592bec8523d8993d8df1811bfc5bf64d59',
        '0x48ee1f88167591357bb6780cbc09bc01e2a93d439e789d44261bf747034164e0'
      ],
      initialBalance: new BN(10000).pow(new BN(18))
    },
    chainId: 420
  },
  debugger: {
    abiFilesGlob: '../contracts/**/out/*.abi'
  }
}

NOTE: debugger > abiFilesGlob.

You can find defaults here

Roadmap

  • original source code (sol) awareness (source maps, memory layouts etc.)
  • More advanced block explorer
  • real debugger (via webinterface or directly in the IDE)

Architecture

Currently it uses forked ethereumjs-vm as a virtual machine but we evaluate other designs (like writing our own VM). Our state manager and blockchain is entirely in memory, without usage of merkle patricia trees. Snapshots are implemented simply as deep copy which makes our snapshot mechanism much more reliable than one used in Ganache.

Open Source Agenda is not affiliated with "Deth" Project. README Source: dethcrypto/deth
Stars
125
Open Issues
11
Last Commit
1 year ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating