Getting Started

Last updated 3 months ago

In this section, we will provide a step by step guide on how to obtain and start the official Ellcrys client software.

What is Elld?

Elld stands for Ellcrys Daemon.

It is the official client software used to connect and interact with the Ellcrys networks. It is actively developed and maintained by the Ellcrys team.

With Elld, users will be able to start a private network, join an existing network, mine blocks, construct transactions and read the state of the network.

Download

There are pre-built binaries of the client for Linux, MacOS and Windows platforms. They can be found on the release page of every new version of software. See our release page for the latest builds.

Build Your Own

If you are interested in building from source, please follow these steps:

Fetch the source:

go get -u -d https://github.com/ellcrys/elld
cd $GOPATH/src/github.com/ellcrys/elld

Fetch dependencies

make deps

Build the source

go build

Start Elld (with ephemeral key)

To start Elld, use the following command

elld start -a "0.0.0.0:9000"

The command above will start a node using defaults settings. The node will listen for connections from other peers on the address specified with -a flag.

When the node starts, an ephemeral key is used to derive the node's identity when interacting with other nodes on the network. Ephemeral keys are temporary; They are disposed of when the node stops running.

Elld will not allow CPU mining operation when the node is using an ephemeral key as the operator will lose any mining reward to the temporary address since they will have no access and control over it.

Start Elld (with a local account)

To remove the restrictions that are in place when Elld starts with an ephemeral account, we need to run Elld with a locally stored account. A local account includes an encrypted key that is stored on the node's disk. To create a key, run the command below:

elld account create
# Output
# New account created, encrypted and stored
# Address: eFjwxLSvseLSafgqMk4UGsnBNUfUy6N2hh

The above command will prompt you to enter a passphrase which is used to encrypt the created key. You can use --pwd flag to provide the passphrase and skip the interactive session.

After creating an account, you can launch Elld using the new account like this:

elld start -a "0.0.0.0:9000" --account "eFjwxLSvseLSafgqMk4UGsnBNUfUy6N2hh"

Or you can specify the index of the account:

elld start -a "0.0.0.0:9000" --account 0

The index of an account is displayed when you list all accounts. See account management to learn about listing and managing accounts.

Keep your passphrase safe. Do not forget it as you will not be able to recover it if you do.

Do not share your passphrase with anyone. You will lose your money if you do.

Join the Network

When you start the client, you should be automatically joined with several hardcoded seed peers embedded into the client. However, you can specify your own peers using the --addnode or -j flags.

elld start \
-a "0.0.0.0:9000" \
-j "ellcrys://[email protected]0:9000"

You can use multiple -j or --addnode flags to provide as many addresses as you wish.

Start RPC Service

The Elld client provides JSON-RPC 2.0 APIs that allows external applications to access various services and information. These APIs allow you to write custom scripts or build custom applications that interact with the client and the network. By default, the RPC service is not enabled. To turn it on, use the --rpc flag when starting the client.

elld start --rpc

Once started, the server will be reachable on 127.0.0.1:8999 by default. Use --rpcaddress to change the listening address.

elld start --rpc --rpcaddress "127.0.0.1:9500"

Attach To a Running Client

Elld supports a mode that allows users to connect to another client running locally or remotely. It starts a javascript console environment that is pre-loaded with methods that can access and alter the state of the node.

To attach to a locally running client running on the default address 127.0.0.1:8999, use the attach client:

elld attach

If the client is running on a different address, use --rpcaddress flag to point to the client.

elld attach --rpcaddress="127.0.0.1:8999"

Create an Account

You will need to create an account and provide the address if you intend to participate in the TestNet partnership campaign.

Accounts are local wallets that store your private keys on your computer. An account is encrypted with a passphrase provided by its creator.

To create an account using Elld, use the account command.

elld account create

The above command will start an interactive session that will ask you to enter a passphrase to be used to encrypt the account on disk. The final output will be similar to this:

Your new account needs to be locked with a password. Please enter a password.
Passphrase:
Repeat Passphrase:
New account created, encrypted and stored
Address: eGAqjozAPCwktR2iWQsZ83QjBqzf3dG4iL

You can share the address with anyone to receive ELL.

Do not share your account's passphrase with anyone.

Do not lose your account's passphrase. It is practically impossible to recover your account without the passphrase.

Docker

We provide helper commands designed to make it easy to run and manage a client in docker.

Get the source

go get -u -d https://github.com/ellcrys/elld
cd $GOPATH/src/github.com/ellcrys/elld

We have included several make targets for starting, stopping, attaching to and destroying a client in docker.

Build a docker container

Use the below command to build a container that includes the latest version of Elld.

make build
# make rebuild // Re-build the container.

The command above will create a container named ellcrys/elld.

Start the container

Start the container

env ELLD_RPC_ON=true make start

This will start the container using default configurations. You can configure startup parameters by setting some environment variables. The container's volume which contains the data created and accessed by the client is located on the host machine at ~/.ellcrys.

By default, the container only exposes port 9000 as the listen port and 8999 for RPC service. You can adjust this values in the Dockerfile located in the project's root directory.

Attach to client in the container

make attach

Stop the container

make stop

Execute arbitrary commands in the container

make exec c="echo hello!"

Check Commands & Flags

Use the -h flag to learn more about the commands and available flags.

elld -h