Skip to content

EpicChain Node is a core component of the EpicChain blockchain network. Nodes are organized in a peer-to-peer network that ensures the secure storage and distribution of user data. By participating as a node in the EpicChain network, you contribute to the decentralization, security, and resilience of the blockchain.

License

Notifications You must be signed in to change notification settings

epicchainlabs/epicchain-node

Repository files navigation

epicchain is a decentralized distributed object storage integrated with the epicchain Blockchain.


Report GitHub release (latest SemVer) License

Overview

epicchain nodes are organized in a peer-to-peer network that stores and distributes users' data. Any epicchain user may participate in the network, either providing storage resources to earn compensation or storing their data at a competitive price.

Users can reliably store object data in the epicchain network and have full control over data placement due to the decentralized architecture and flexible storage policies. Nodes execute these storage policies, allowing users to specify parameters such as geographical location, reliability level, number of nodes, type of disks, capacity, and more.

Deep epicchain Blockchain integration allows epicchain to be used by dApps directly from epicchainVM on the Smart Contract code level. This enables dApps to manipulate large amounts of data affordably.

epicchain offers a native gRPC API and protocol gateways for popular protocols such as AWS S3, HTTP, FUSE, and sFTP, allowing developers to integrate applications without extensive code rewriting.

Supported Platforms

Currently, we support GNU/Linux on amd64 CPUs with AVX/AVX2 instructions. More platforms will be supported after release 1.0.

The latest version of epicchain-node is compatible with epicchain-contract v0.19.1.

Building

To compile all binaries, you need Go 1.20+ and make:

make all

The resulting binaries will appear in the bin/ folder.

To make a specific binary, use:

make bin/epicchain-<name>

See the list of all available commands in the cmd folder.

Building with Docker

Building can also be performed in a container:

make docker/all                      # build all binaries
make docker/bin/epicchain-<name>     # build a specific binary

Docker Images

To create Docker images suitable for use in epicchain-dev-env, use:

make images

Running

CLI

epicchain-cli allows users to manage containers and objects by connecting to any node in the target network. Detailed descriptions of all commands and options are provided within the tool, but some specific concepts have additional documentation:

epicchain-adm is a network setup and management utility for network administrators. Refer to docs/cli-adm.md for more information.

Both epicchain-cli and epicchain-adm can take a configuration file as a parameter to simplify working with the same network/wallet. See cli.yaml for an example. Control service-specific configuration examples are ir-control.yaml and node-control.yaml for IR and SN nodes, respectively.

Node

There are two kinds of nodes: inner ring nodes and storage nodes. Most users will run storage nodes, while inner ring nodes are special and similar to epicchain consensus nodes in their network role. Both accept parameters from YAML or JSON configuration files and environment variables.

See docs/sighup.md on how to reconfigure nodes without a restart.

See docs/storage-node-configuration.md on how to configure a storage node.

Example Configurations

These examples contain all possible configurations of epicchain nodes. While the parameters are correct, the provided values are for informational purposes only and not recommended for direct use. Real networks and configurations will differ significantly.

See node.yaml for configuration notes.

Private Network

For epicchain development, consider using epicchain-dev-env. For developing applications using epicchain, the lighter epicchain-aio container is recommended. For manual deployment, refer to docs/deploy.md.

Contributing

We welcome contributions! Please read the contributing guidelines before starting. Create a new issue first, describing the feature or topic you plan to implement.

Credits

epicchain is maintained by epicchainSPCC with contributions from the community. Please see CREDITS for details.

License

About

EpicChain Node is a core component of the EpicChain blockchain network. Nodes are organized in a peer-to-peer network that ensures the secure storage and distribution of user data. By participating as a node in the EpicChain network, you contribute to the decentralization, security, and resilience of the blockchain.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published