Giter Club home page Giter Club logo

stylus's Introduction


Logo

Arbitrum Nitro

Next Generation Ethereum L2 Technology »

About Arbitrum Nitro

Logo

Nitro is the latest iteration of the Arbitrum technology. It is a fully integrated, complete layer 2 optimistic rollup system, including fraud proofs, the sequencer, the token bridges, advanced calldata compression, and more.

See the live docs-site here (or here for markdown docs source.)

See here for security audit reports.

The Nitro stack is built on several innovations. At its core is a new prover, which can do Arbitrum’s classic interactive fraud proofs over WASM code. That means the L2 Arbitrum engine can be written and compiled using standard languages and tools, replacing the custom-designed language and compiler used in previous Arbitrum versions. In normal execution, validators and nodes run the Nitro engine compiled to native code, switching to WASM if a fraud proof is needed. We compile the core of Geth, the EVM engine that practically defines the Ethereum standard, right into Arbitrum. So the previous custom-built EVM emulator is replaced by Geth, the most popular and well-supported Ethereum client.

The last piece of the stack is a slimmed-down version of our ArbOS component, rewritten in Go, which provides the rest of what’s needed to run an L2 chain: things like cross-chain communication, and a new and improved batching and compression system to minimize L1 costs.

Essentially, Nitro runs Geth at layer 2 on top of Ethereum, and can prove fraud over the core engine of Geth compiled to WASM.

Arbitrum One successfully migrated from the Classic Arbitrum stack onto Nitro on 8/31/22. (See state migration and dapp migration for more info).

License

Nitro is currently licensed under a Business Source License, similar to our friends at Uniswap and Aave, with an "Additional Use Grant" to ensure that everyone can have full comfort using and running nodes on all public Arbitrum chains.

The Additional Use Grant also permits the deployment of the Nitro software, in a permissionless fashion and without cost, as a new blockchain provided that the chain settles to either Arbitrum One or Arbitrum Nova.

For those that prefer to deploy the Nitro software either directly on Ethereum (i.e. an L2) or have it settle to another Layer-2 on top of Ethereum, the Arbitrum Expansion Program (the "AEP") was recently established. The AEP allows for the permissionless deployment in the aforementioned fashion provided that 10% of net revenue (as more fully described in the AEP) is contributed back to the Arbitrum community in accordance with the requirements of the AEP.

Contact

Discord - Arbitrum

Twitter: Arbitrum

stylus's People

Contributors

amsanghi avatar anodar avatar dependabot[bot] avatar dzgoldman avatar edfelten avatar farazdagi avatar fionnachan avatar fredlacs avatar ganeshvanahalli avatar greatsoshiant avatar gvladika avatar gzeoneth avatar hkalodner avatar jason-w123 avatar jason-wanxt avatar joshuacolvin0 avatar lambchr avatar magicxyyz avatar mahsamoosavi avatar michaelneuder avatar plasmapower avatar r4chel avatar rachel-bousfield avatar rauljordan avatar shotaronowhere avatar stupidfuckereth avatar terencechain avatar tristan-wilson avatar tsahee avatar yahgwai 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stylus's Issues

Support for high level languages such as Clojure

Is your feature request related to a problem? Please describe.
Being able to code smart contracts in lower level languages such as c++ and rust are great for developers familiar with those languages but it doesn't get away from the fundamental issue of programming in solidity or vyper. These are lower level languages that encourage patterns of mutation and changing state in place which is what leads to code that is error prone harder to maintain and evolve.

Arbitrum could really stand out if it became the first chain to support contracts written in high level languages.

Describe the solution you'd like
A declarative language like Clojure let's developers express WHAT the application should do rather than HOW it should do it. This leads to fewer bugs and better collaboration among developers, business people and external parties such as auditors.

Describe alternatives you've considered
Support for javascript would be a good starting point as it is the most used language and it can supports this style of programming. The problem with JS it is also support changing state in place and other patterns that lead to poor code quality.

Additional context
https://www.youtube.com/watch?v=nD-QHbRWcoM

How to set up a local testnet?

Hello, I want to set up a stylus local test network. I have successfully built a local test network using the stylus branch in nitro-testnode. However, I want to use the latest version of stylus, and the stylus branch in nitro-testnode has not been updated for a long time. The configuration file it generates will make the latest version stylus report an error and exit. I tried to use nitro-testnode in the stylus repository and it worked, but it seemed that stylus support was not turned on correctly.
In go-ethereum/params/config.go, IsStylus: c.IsArbitrum() && currentArbosVersion >= ArbosVersion_Stylus, where ArbosVersion_Stylus = 30, and in go-ethereum/params/config_arbitrum.go``" InitialArbOSVersion": 11, I tried changing 11 to 30, but it still doesn't work properly.
I use ./test-node.bash --init to start the local test network, and then use the latest version of cargo-stylus to deploy the helloword wasm smart contract generated by cargo-stylus new, which always returns "execution reverted".

Connecting to Stylus RPC endpoint: http://127.0.0.1:8547
Error: failed to deploy

Caused by:
    Stylus checks failed: program predeployment check failed when checking against ARB_WASM_ADDRESS 0000000000000000000000000000000000000071: (code: -32000, message: execution reverted, data: None)

Location:

What should I do to correctly set up the stylus local testnet?

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.