EonTechnology / server

This repository contains the implementation of the peer.
GNU Lesser General Public License v3.0
9 stars 4 forks source link

EON peer core source code.

Description

EON is a decentralized blockchain based-platform that provides an infrastructure for the Exscudo Ecosystem services. The architecture of the platform is built on a simple core that realizes a mathematical model and services that provide additional functionality.

The core forms the decentralized part of the system that consists of a variety of peers and executes the functionality of support on user account and financial operations.

This repository contains the implementation of the peer.

How to build and run

Use Git to clone the required files

git clone --branch <name> https://github.com/EonTechnology/server.git
cd ./server

The 'master' branch is used for the Main network, the 'test3' - for Test3 network.

Running node

There are 2 ways to run node - Jetty (embedded server) and Docker. Below you will find two separate descriptions for each way. EON_NETWORK environment variable must be specified for select network (dev/test3/main).

Jetty

Follows the standard Maven building procedure (see https://maven.apache.org/).

mvn package

Run embedded server:

mvn jetty:run

Run with setting generation account and network:

EON_NETWORK=... mvn jetty:run -DSECRET_SEED=...

Docker

Build and run docker-image

docker build -t eon/peer .
docker run -d -v $(pwd)/db:/app/db -p 9443:9443 -e EON_NETWORK=... -e SECRET_SEED=... eon/peer

Enable database clearing

Clears the database from the side blockchain and unused items in the state tree. Disabled by default.

To enable:

Truncate history

A weekly block history is stored. Fast initial synchronization is used. Disabled by default.

Database clearing should be enabled.

To enable:

Directory Layout

peer-core - Core of the node without binding to the organization of data storage and the implementation of the transport.

peer-crypto - Crypto library with the implementation of the crypto interface.

peer-eon - EON-specific code. Contains implementation of transaction handlers.

peer-eon-app - Implementation of simple bot API and JSON-RPC transport.

peer-eon-tx-builders - Transaction builders for all supported transaction types (used only for test scope).

json-rpc - Simple implementation of the JRPC protocol.

License

Project is issued under GNU LESSER GENERAL PUBLIC LICENSE version 3.0

Uses the library under MIT License ( https://github.com/InstantWebP2P/tweetnacl-java/blob/master/LICENSE ).