-
Notifications
You must be signed in to change notification settings - Fork 378
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
13 changed files
with
80 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -61,6 +61,6 @@ with-serde = [ | |
members = [ | ||
"interpreter", | ||
"jsontests", | ||
"precompiles", | ||
"precompile", | ||
"tracer", | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,41 @@ | ||
# SputnikVM: Rust Ethereum Virtual Machine Implementation | ||
# Rust EVM | ||
|
||
[![Build Status](https://github.com/rust-blockchain/evm/workflows/Rust/badge.svg)](https://github.com/rust-blockchain/evm/actions?query=workflow%3ARust) | ||
[![Build Status](https://github.com/rust-ethereum/evm/workflows/Rust/badge.svg)](https://github.com/rust-ethereum/evm/actions?query=workflow%3ARust) | ||
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](./LICENSE) | ||
|
||
| Name | Description | Crates.io | Documentation | | ||
|---------------|:---------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------:| | ||
| evm | Main library that re-exports most things. | [![crates.io](https://img.shields.io/crates/v/evm.svg)](https://crates.io/crates/evm) | [![Documentation](https://docs.rs/evm/badge.svg)](https://docs.rs/evm) | | ||
| evm-core | Core library defining the basic execution rules. | [![crates.io](https://img.shields.io/crates/v/evm-core.svg)](https://crates.io/crates/evm-core) | [![Documentation](https://docs.rs/evm-core/badge.svg)](https://docs.rs/evm-core) | | ||
| evm-gasometer | Integration of Ethereum gas rules. | [![crates.io](https://img.shields.io/crates/v/evm-gasometer.svg)](https://crates.io/crates/evm-gasometer) | [![Documentation](https://docs.rs/evm-gasometer/badge.svg)](https://docs.rs/evm-gasometer) | | ||
| evm-runtime | Runtime defining interface for block, transaction, and storage. | [![crates.io](https://img.shields.io/crates/v/evm-runtime.svg)](https://crates.io/crates/evm-runtime) | [![Documentation](https://docs.rs/evm-runtime/badge.svg)](https://docs.rs/evm-runtime) | | ||
Rust EVM, also known as SputnikVM, is a flexible Ethereum Virtual Machine | ||
interpreter that can be easily customized. | ||
|
||
## Status | ||
|
||
The Rust EVM project has a long history dating back to the initial | ||
implementation in 2017 (when it was called SputnikVM). It has went through | ||
multiple rewrites over the years to accomodate for different requirements, when | ||
we successfully tested one integrating Geth to sync the mainnet. | ||
|
||
The current rewrite is used in production for the Frontier project (the | ||
Ethereum-compatibility layer for Polkadot). However, we have not yet fully | ||
tested it against Ethereum mainnet. If you have such requirements, PR for fixes | ||
are welcomed. | ||
|
||
## Features | ||
|
||
* **Standalone** - can be launched as an independent process or integrated into other apps | ||
* **Universal** - supports different Ethereum chains, such as ETC, ETH or private ones | ||
* **Stateless** - only an execution environment connected to independent State storage | ||
* **Fast** - main focus is on performance | ||
* written in Rust, can be used as a binary, cargo crate or shared | ||
library | ||
* **Standalone** - can be launched as an independent process or integrated into other apps. | ||
* **Flexible** - can be customized and extended to support additional opcodes, | ||
additional precompiles, different gasometers or other more exotic use cases. | ||
* **Portable** - support `no_std`, and can be used in different environments | ||
like in WebAssembly. | ||
* **Fast** - we of course try to be fast! | ||
* written in Rust, can be used as a binary, cargo crate or shared library. | ||
|
||
## Dependencies | ||
|
||
Ensure you have at least `rustc 1.51.0 (2fd73fabe 2021-03-23)`. Rust 1.50.0 and | ||
before are not supported. | ||
Rust EVM requires at least `rustc 1.75`. | ||
|
||
## Documentation | ||
|
||
* [Latest release documentation](https://docs.rs/evm) | ||
|
||
## Build from sources | ||
|
||
SputnikVM is written in Rust. If you are not familiar with Rust, please | ||
see the [starting documentation](https://www.rust-lang.org/learn). | ||
|
||
### Build | ||
|
||
To start working with SputnikVM you'll | ||
need to install [rustup](https://www.rustup.rs/), then you can do: | ||
|
||
```bash | ||
$ git clone [email protected]:rust-blockchain/evm.git | ||
$ cd evm | ||
$ cargo build --release --all | ||
``` | ||
|
||
## License | ||
|
||
Apache 2.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters