GithubHelp home page GithubHelp logo

Re-metering about design HOT 1 OPEN

ewasm avatar ewasm commented on June 2, 2024
Re-metering

from design.

Comments (1)

ehildenb avatar ehildenb commented on June 2, 2024

I don't like the idea of trying to identify which useGas were inserted by the metering contract and which were not. Would only really be ok with it if there was no way for the user to write useGas, but I don't think we want that either.

I think better solutions could be:

  1. Allow the clients to cache the metered version, instead of storing the metered version on chain. Standard network consensus governing when re-metering is necessary.
  2. Pass an enum to useGas instead of a concrete number. Eg, call useGas Wlow, where Wlow is represented with 0x03 or the like. The useGas function then is just a lookup table like Wlow => 3 and the like. Allows us to update the cost of operators without having to re-meter existing contracts, and we get to store the metered version. The problem here is that we need to pass in a list of arguments to useGas instead of a single argument now, because we want to meter many operators at once. We could just provide 10 useGas functions, accepting up to 10 gas enum elements. I believe that the function reference passing proposals for the WASM spec would allow us to pass a single function reference instead.

from design.

Related Issues (20)

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.