Polaris is a modular implementation of the Ethereum Virtual Machine (EVM). It can be easily integrated into any consensus engine or application, including the Cosmos-SDK.
The project is still work in progress, see the disclaimer below.
Introducing Polaris, the revolutionary framework designed to simplify the integration of an Ethereum Virtual Machine (EVM) into your application. Polaris is built with a clean, easy-to-integrate API that eliminates the need for developers to spend time hacking together their own EVM integration solutions. Our framework is highly modular, allowing you to choose the components that best fit your needs and integrate an EVM environment into virtually any application.
Polaris is built with several core principles in mind:
If you want to build on top of Polaris, take a look at our documentation. If you want to help contribute to the framework, check out the Framework Specs.
Polaris utilizes go workspaces to break up the repository into logical sections, helping to reduce cognitive overhead.
🔭 Polaris 🔭 ├── build: Build scripts and developer tooling. ├── contracts: Contracts and bindings for Polaris (and hosts). ├── cosmos: Polaris integrated into a Cosmos-SDK based chain. ├── e2e: End-to-end testing utilities. ├── eth: The Core of the Polaris Ethereum Framework. ├── lib: A collection of libraries used throughout the repo. ├── proto: Protobuf definitions.
Golang 1.20+ and Foundry are required for Polaris.
Install go 1.21+ from the official site or the method of your choice. Ensure that your GOPATH
and GOBIN
environment variables are properly set up by using the following commands:
For Ubuntu:
cd $HOME
sudo apt-get install golang jq -y
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$(go env GOPATH)/bin
For Mac:
cd $HOME
brew install go jq
export PATH=$PATH:/opt/homebrew/bin/go
export PATH=$PATH:$(go env GOPATH)/bin
Install Foundry:
curl -L https://foundry.paradigm.xyz | bash
Clone, Setup and Test:
cd $HOME
git clone https://github.com/berachain/polaris
cd polaris
git checkout main
make test-unit
Start a local development network:
make start
This project is work in progress and subject to frequent changes as we are still working on wiring up the final system. It has not been audited for security purposes and should not be used in production yet.
The network will have an Ethereum JSON-RPC server running at http://localhost:8545
and a Tendermint RPC server running at http://localhost:26657
.