elys

module
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2024 License: Apache-2.0

README

Elys

Elys is a blockchain built using Cosmos SDK and CometBFT. It is designed to be a fast, scalable, and secure blockchain that can be used to build decentralized applications.

Parameter Value
Chain Info See network details here
Denomination uelys
Decimals 6 (1 elys= 1000000uelys)
Version See latest version here
MainNet RPC Endpoint https://rpc.elys.network:443
MainNet API Endpoint https://api.elys.network:443
TestNet RPC Endpoint https://rpc.testnet.elys.network:443
TestNet API Endpoint https://api.testnet.elys.network:443

Localnet Setup Guide

This guide provides instructions on how to spin up a new localnet using the Elys network for development purposes. Follow these steps to set up your localnet environment.

Prerequisites
  • Make sure you have git, make, Go environment, and jq installed on your machine.
Getting Started
  1. Clone the Elys Repository

    First, clone the Elys repository to your local machine:

    git clone https://github.com/elys-network/elys.git
    
  2. Build the Binary

    Navigate into the cloned repository and build the binary using:

    git tag -f v999.999.999 && make install
    

    This command will install the elysd daemon.

  3. Download the Latest TestNet Snapshot

    To get the latest TestNet snapshot available for the Elys network, use the following command to download the latest TestNet snapshot that uses the changes from the main branch:

    rm -rf ~/.elys && curl -o - -L https://snapshots.elys.network/elys-snapshot-main.tar.lz4 | lz4 -c -d - | tar -x -C ~/
    
  4. Spin Up the Localnet

    Use the command below to start the localnet:

    elysd start
    

Installation

This section provides a step-by-step guide on how to build the Elys Chain binary from the source code using the provided makefile. The makefile automates the build process and generates a binary executable that can be run on your local machine.

Click to expand/collapse
  1. Clone the Elys chain repository:
git clone https://github.com/elys-network/elys.git
  1. Navigate to the cloned repository:
cd elys
  1. Optionally, checkout the specific branch or tag you want to build:
git checkout [version]
  1. Ensure that you have the necessary dependencies installed. For instance, on Ubuntu you need to install the make tool:
sudo apt-get install --yes make

In order to generate proto files, install the dependencies below:

  • buf
  • clang-format
  • protoc-gen-go-cosmos-orm: go install cosmossdk.io/orm/cmd/protoc-gen-go-cosmos-orm@latest

Then run the following command:

make proto
  1. Optional: Use RocksDB instead of pebbledb

Ensure that you have RocksDB installed on your machine. On Ubuntu, you can install RocksDB using the following suite of commands:

# set rocks db version
ROCKSDB_VERSION=8.9.1

# install rocks db dependencies
sudo apt install -y libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev

# download and extract on /tmp
cd /tmp
wget https://github.com/facebook/rocksdb/archive/refs/tags/v${ROCKSDB_VERSION}.tar.gz
tar -xvf v${ROCKSDB_VERSION}.tar.gz && cd rocksdb-${ROCKSDB_VERSION} || return

# build rocks db
export CXXFLAGS='-Wno-error=deprecated-copy -Wno-error=pessimizing-move -Wno-error=class-memaccess'
make shared_lib

# install rocks db
sudo make install-shared INSTALL_PATH=/usr

# cleanup to save space
rm -rf /tmp/rocksdb-${ROCKSDB_VERSION} /tmp/v${ROCKSDB_VERSION}.tar.gz

In order to build the binary with RocksDB, you need to run the following command:

ROCKSDB=1 make build

Note: RocksDB is only required for Linux machines. For macOS, you can continue without installing RocksDB.

When running ROCKSDB=1 make build, if you are getting this error:

elysd: error while loading shared libraries: librocksdb.so.8.9: cannot open shared object file: No such file or directory

You might need to set the LD_LIBRARY_PATH environment variable to the local library path. You can do this by running the following command:

export LD_LIBRARY_PATH=/usr/local/lib
  1. Run the make build command to build the binary:
make build
  1. The binary will be generated in the ./build directory. You can run the binary using the following command:
./build/elysd

You can also use the make install command to install the binary in the bin directory of your GOPATH.

Validator Guide

The validator guide is accessible here.

Architecture

The architecture guide is accessible here.

Release

To release a new version of Elys, create and push a new tag with v prefix. A new draft release with the configured targets will be created.

git tag v0.1
git push origin v0.1

After a draft release is created, make your final changes from the release page and publish it.

Learn more

Directories

Path Synopsis
api
elys/accountedpool
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/amm
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/assetprofile
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/burner
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/commitment
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/epochs/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/estaking
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/leveragelp
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/masterchef
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/oracle
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/parameter
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/perpetual
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/stablestake
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/tier
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/tokenomics
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/tradeshield
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
elys/transferhook
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
app
cmd
testutil
nullify
Package nullify provides methods to init nil values structs for test assertion.
Package nullify provides methods to init nil values structs for test assertion.
x
accountedpool/types
Package types is a reverse proxy.
Package types is a reverse proxy.
amm
amm/types
Package types is a reverse proxy.
Package types is a reverse proxy.
assetprofile/types
Package types is a reverse proxy.
Package types is a reverse proxy.
burner/types
Package types is a reverse proxy.
Package types is a reverse proxy.
commitment/types
Package types is a reverse proxy.
Package types is a reverse proxy.
epochs/types
Package types is a reverse proxy.
Package types is a reverse proxy.
estaking/types
Package types is a reverse proxy.
Package types is a reverse proxy.
leveragelp/types
Package types is a reverse proxy.
Package types is a reverse proxy.
masterchef/types
Package types is a reverse proxy.
Package types is a reverse proxy.
oracle/types
Package types is a reverse proxy.
Package types is a reverse proxy.
parameter/types
Package types is a reverse proxy.
Package types is a reverse proxy.
perpetual/types
Package types is a reverse proxy.
Package types is a reverse proxy.
stablestake/types
Package types is a reverse proxy.
Package types is a reverse proxy.
tier/types
Package types is a reverse proxy.
Package types is a reverse proxy.
tokenomics/types
Package types is a reverse proxy.
Package types is a reverse proxy.
tradeshield/types
Package types is a reverse proxy.
Package types is a reverse proxy.
transferhook/types
Package types is a reverse proxy.
Package types is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL