elys

module
v0.49.3 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 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 ID elystestnet-1
Denomination uelys
Decimals 6 (1 elys= 1000000uelys)
Version See latest version here
RPC Endpoint https://rpc.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
  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.

With Ignite (Experimental)

To install the latest version of Elys binary, execute the following command on your machine:

curl https://get.ignite.com/elys-network/elys@latest! | sudo bash

Development

You can use ignite-cli to get you started with your development environment. To install ignite-cli, execute the following command on your machine:

curl https://get.ignite.com/ignite/ignite-cli@latest! | sudo bash
Initialize

To initialize and serve your development environment, execute the following command:

ignite chain serve -r

serve command installs dependencies, builds, initializes, and starts Elys in development. The -r flag rebuilds the binary before starting the chain.

Validator Guide

The validator guide is accessible here.

Network Launch

The network 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
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.
wasmbindings
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.
clock/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