Giter Site home page Giter Site logo

dethcrypto / deth Goto Github PK

View Code? Open in Web Editor NEW
125.0 125.0 14.0 813 KB

☠️ Ethereum Node focused on Developer Experience

License: MIT License

TypeScript 98.83% JavaScript 0.42% Shell 0.08% CSS 0.66%
development ethereum ethers evm jsonrpc node truffle typescript

deth's People

Contributors

dependabot[bot] avatar hasparus avatar krzkaczor avatar sz-piotr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

deth's Issues

`eth_estimateGas` result may not be enough

Gas estimation is tricky.

  1. A transactions gasUsed amount is not the same as the amount of gas required for a transaction.
  2. Gas refunds are deducted from the gasUsed amount, but the refunded amount must be available when running the transactions
  3. For some OPCODES (like CALL) 1/64th of the current gasLeft is withheld from the CALL. This has a strange side effect that can cause the CALL (et al) opcode's internal context to run out of gas, even if the transaction itself DOES have enough gas (i.e., gasLeft - gasUsed >= 0).
  4. Since istanbul, some opcodes, under certain circumstances, actually require more gas to run than they actually spend.
  5. The gasLimit of a transaction can cause the transaction's gasUsed as well as the required gas to vary.

@nicholasjpaterno, did I miss any other tricky cases?

Take a look at ganache-core's gas estimation algorithm for implementation details.

OpenRPC Support

I think this project could benefit from integration with OpenRPC which provides a base foundation for service discovery and tooling such as documentation and client generation, typings (typescript/rust), etc, for JSON-RPC akin to OpenAPI/Swagger.

Here is an example of an ethereum node with the OpenRPC playground, it gets the OpenRPC Document via calling the rpc.discover method:

https://playground.open-rpc.org/?schemaUrl=https://services.jade.builders/core-geth/mainnet/1.11.2

Let me know how I can help.

Config management

  1. add config validation using io-ts
  2. add CLI to override any options that are part of the config

I don't think that currently, we should spent time working on json/yml version of the config

The published version does not match the config documentation

The config documentation shows config of the form:

blockchain: {
    accounts: {
      privateKeys: [],
      initialBalance: new BN(10000).pow(new BN(18))
    },
    chainId: 420
  },

however the latest version 0.0.5, appears to require config of the form:

    accounts: {
      privateKeys: [],
      initialBalance: new BN(10000).pow(new BN(18))
    },
   blockchain: {
    chainId: 420
  },

Incorrect accounts generated from private keys

Private key 0x7ab741b57e8d94dd7e1a29055646bafde7010f38a900f55bbd7647880faa6ee8 should generate account with address0xD9995BAE12FEe327256FFec1e3184d492bD94C31 however atm it returns 0x39753A8556C680b32088f487A1c6F02C8667db47

This is the case for all 10 test accounts I'm using

Is this project still alive?

Some dependencies (like ethereumjs ones) seem to be severely outdated. There also have been no commits since Oct 2021. Is this project still maintained?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.