https://github.com/oasisprotocol/emerald-paratime
Emerald, the EVM compatible paratime
https://github.com/oasisprotocol/emerald-paratime
Last synced: 9 months ago
JSON representation
Emerald, the EVM compatible paratime
- Host: GitHub
- URL: https://github.com/oasisprotocol/emerald-paratime
- Owner: oasisprotocol
- License: apache-2.0
- Created: 2021-10-15T12:47:13.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-11-28T20:34:25.000Z (over 2 years ago)
- Last Synced: 2025-05-05T15:51:05.136Z (about 1 year ago)
- Language: Rust
- Size: 201 KB
- Stars: 4
- Watchers: 16
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# The Emerald ParaTime
[![CI lint status][github-ci-lint-badge]][github-ci-lint-link]
[![CI audit status][github-ci-audit-badge]][github-ci-audit-link]
[github-ci-lint-badge]: https://github.com/oasisprotocol/emerald-paratime/workflows/ci-lint/badge.svg
[github-ci-lint-link]: https://github.com/oasisprotocol/emerald-paratime/actions?query=workflow:ci-lint+branch:main
[github-ci-audit-badge]: https://github.com/oasisprotocol/emerald-paratime/workflows/ci-audit/badge.svg
[github-ci-audit-link]: https://github.com/oasisprotocol/emerald-paratime/actions?query=workflow:ci-audit+branch:main
This is the Emerald ParaTime, an official EVM-compatible
[Oasis Protocol Foundation]'s ParaTime for the [Oasis Network] built using the
[Oasis SDK].
[Oasis Protocol Foundation]: https://oasisprotocol.org/
[Oasis Network]: https://docs.oasis.dev/oasis-network-primer/
[Oasis SDK]: https://github.com/oasisprotocol/oasis-sdk
## Note
* **This ParaTime currently depends on an unreleased version of [Oasis SDK].**
## Building
### Prerequisites
#### Rust
Ensure you have [Rust] and [rustup] installed on your system.
For more details, see [Oasis Core's Prerequisites] documentation, the Rust
section.
The version of the Rust toolchain we use for the Emerald ParaTime is specified
in the [rust-toolchain] file.
The rustup-installed versions of `cargo`, `rustc` and other tools will
[automatically detect this file and use the appropriate version of the Rust
toolchain][rust-toolchain-precedence] when invoked from the Emerald ParaTime git
checkout directory.
To install the appropriate version of the Rust toolchain, make sure you are
in an Emerald ParaTime git checkout directory and run:
```
rustup show
```
This will automatically install the appropriate Rust toolchain (if not
present) and output something similar to:
```
...
active toolchain
----------------
nightly-2021-08-17-x86_64-unknown-linux-gnu (overridden by '/code/rust-toolchain')
rustc 1.56.0-nightly (0035d9dce 2021-08-16)
```
[Rust]: https://www.rust-lang.org/
[rustup]: https://rustup.rs/
[Oasis Core's Prerequisites]:
https://docs.oasis.dev/oasis-core/development-setup/build-environment-setup-and-building/prerequisites
[rust-toolchain]: rust-toolchain
[rust-toolchain-precedence]:
https://github.com/rust-lang/rustup/blob/master/README.md#override-precedence
### Non-SGX Binary
To build the non-SGX binary of the Emerald ParaTime, checkout the appropriate
version and run:
```
cargo build --release
```
The resulting ELF binary is located at `target/release/emerald-paratime`.
_NOTE: The non-SGX binary is dynamically linked so it may not be portable
between machines with different versions of shared libraries._