{"id":23353864,"url":"https://github.com/epicchainlabs/epicchain-go","last_synced_at":"2025-04-10T06:05:19.204Z","repository":{"id":252132509,"uuid":"805201661","full_name":"epicchainlabs/epicchain-go","owner":"epicchainlabs","description":"EpicChainGo is a comprehensive platform designed for the development of distributed applications (dApps) built on top of and fully compatible with the EpicChain project.","archived":false,"fork":false,"pushed_at":"2024-12-08T11:19:51.000Z","size":2045,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-24T07:11:24.134Z","etag":null,"topics":["blockchain-ecosystem","dapp-builder","dapp-development","distributed-applications","epicchain","epicchain-blockchain","epicchain-compatibility","epicchain-go","smartcontracts"],"latest_commit_sha":null,"homepage":"https://www.epic-chain.org/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epicchainlabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-24T05:02:18.000Z","updated_at":"2025-02-04T03:08:13.000Z","dependencies_parsed_at":"2024-08-07T22:53:22.240Z","dependency_job_id":"4dc3e530-88bf-41bd-9d40-fd667bbff246","html_url":"https://github.com/epicchainlabs/epicchain-go","commit_stats":null,"previous_names":["epicchainlabs/epicchain-go"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicchainlabs%2Fepicchain-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicchainlabs%2Fepicchain-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicchainlabs%2Fepicchain-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicchainlabs%2Fepicchain-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epicchainlabs","download_url":"https://codeload.github.com/epicchainlabs/epicchain-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166937,"owners_count":21058481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain-ecosystem","dapp-builder","dapp-development","distributed-applications","epicchain","epicchain-blockchain","epicchain-compatibility","epicchain-go","smartcontracts"],"created_at":"2024-12-21T09:16:49.597Z","updated_at":"2025-04-10T06:05:19.182Z","avatar_url":"https://github.com/epicchainlabs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EpicChain Go Node and SDK\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eEpicChain\u003c/b\u003e Node and SDK for the \u003ca href=\"https://epicchain.org\"\u003eEpicChain\u003c/a\u003e blockchain.\n\u003c/p\u003e\n\n\u003chr /\u003e\n\n[![codecov](https://codecov.io/gh/epicchainlabs/epicchain-go/branch/master/graph/badge.svg)](https://codecov.io/gh/epicchainlabs/epicchain-go)\n[![GithubWorkflows Tests](https://github.com/epicchainlabs/epicchain-go/actions/workflows/tests.yml/badge.svg)](https://github.com/epicchainlabs/epicchain-go/actions/workflows/tests.yml)\n[![Report](https://goreportcard.com/badge/github.com/epicchainlabs/epicchain-go)](https://goreportcard.com/report/github.com/epicchainlabs/epicchain-go)\n[![GoDoc](https://godoc.org/github.com/epicchainlabs/epicchain-go?status.svg)](https://godoc.org/github.com/epicchainlabs/epicchain-go)\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/epicchainlabs/epicchain-go?sort=semver)\n![License](https://img.shields.io/github/license/epicchainlabs/epicchain-go.svg?style=popout)\n\n## Overview\n\nWelcome to **EpicChainGo**, the comprehensive platform for developing distributed applications on the EpicChain blockchain. EpicChainGo provides an extensive suite of tools and components essential for blockchain development, including but not limited to:\n\n- **Consensus Node**: Handle the consensus mechanism of the EpicChain network. For detailed information, check out the [consensus documentation](docs/consensus.md).\n- **RPC Node \u0026 Client**: Facilitate remote procedure calls to interact with the EpicChain blockchain. For more details, refer to [RPC documentation](docs/rpc.md).\n- **CLI Tool**: Command-line interface tool for various blockchain operations. Instructions can be found in the [CLI documentation](docs/cli.md).\n- **Smart Contract Compiler**: Compile smart contracts written in Go into EpicChain VM bytecode. For guidance, see [compiler documentation](docs/compiler.md).\n- **EpicChain Virtual Machine**: The virtual machine that executes smart contracts. More information is available in the [VM documentation](docs/vm.md).\n- **Smart Contract Examples**: Explore various smart contract examples to help you get started. See the [examples directory](examples/README.md) for more.\n- **Oracle Service**: Service for providing external data to the blockchain. Learn more in the [oracle documentation](docs/oracle.md).\n- **State Validation Service**: Ensure the validity of the blockchain state. Detailed information can be found in the [state validation documentation](docs/stateroots.md).\n\nEpicChainGo is designed to be compatible with the EpicChain N3 protocol. However, if you need to work with the EpicChain Legacy protocol, you can find an implementation in the [**master-2.x** branch](https://github.com/epicchainlabs/epicchain-go/tree/master-2.x) and releases prior to version 0.80.0 (version **0.7X.Y** track).\n\n## Getting Started\n\n### Installation\n\nEpicChainGo is distributed as a single binary, encompassing all the features and functionality you need (please note that the smart contract compiler requires the Go compiler). You have several options for installation:\n\n1. **Download the Binary**: Obtain the pre-built binary from the [releases page](https://github.com/epicchainlabs/epicchain-go/releases).\n2. **Docker Image**: Use the Docker image available on [Docker Hub](https://hub.docker.com/r/nspccdev/epicchain-go). The `:latest` tag points to the most recent release.\n3. **Build from Source**: Compile the binary yourself by following the instructions below.\n\n#### Building from Source\n\nTo build EpicChainGo from source, you need Go 1.20+ and `make` installed:\n\n```sh\nmake\n```\n\nThe build process will generate the binary located at `bin/epicchain-go`. We recommend using tagged releases rather than random revisions from the `master` branch, as these may contain bugs or incompatibilities depending on the development stage.\n\n##### Building on Windows\n\nFor building EpicChainGo on Windows, install `make` from the [MinGW package](https://osdn.net/projects/mingw/). Then, you can build EpicChainGo with:\n\n```sh\nmake\n```\n\nThe resulting binary will be `bin/epicchain-go.exe`.\n\n### Running a Node\n\nTo run an EpicChain node, it must be connected to a network, either a local network (commonly referred to as `privnet`) or a public network (such as `mainnet` or `testnet`). Network configurations are managed via files, and EpicChainGo supports storing multiple configuration files in one directory (`./config` by default) and switching between them using network flags.\n\nTo start a node on a private network, use:\n\n```sh\n./bin/epicchain-go node\n```\n\nTo specify a different network, use an appropriate flag:\n\n```sh\n./bin/epicchain-go node --mainnet\n```\n\nAvailable network flags include:\n- `--mainnet, -m`\n- `--privnet, -p`\n- `--testnet, -t`\n\nFor running a consensus/committee node, please refer to the [consensus documentation](docs/consensus.md).\n\nIf you're using Windows, ensure that Windows Firewall is configured to allow inbound connections to the P2P port.\n\n### Docker\n\nBy default, the Docker image is configured to run a node on `privnet`. To start a node using Docker, execute:\n\n```bash\ndocker run -d --name epicchain-go -p 20332:20332 -p 20331:20331 nspccdev/epicchain-go\n```\n\nThis command starts a node on `privnet` and exposes ports `20332` (for P2P protocol) and `20331` (for JSON-RPC server).\n\n### Importing Chain Dumps\n\nTo initialize your mainnet or testnet node with [chain archives provided by NGD](https://sync.ngd.network/), follow these steps:\n\n```sh\n$ wget .../chain.acc.zip # download the chain dump file\n$ unzip chain.acc.zip\n$ ./bin/epicchain-go db restore -m -i chain.acc # use '-t' flag instead of '-m' for testnet\n```\n\nThe import process differs from that of the C# node in that block importing is a separate mode. After importing, you can start the node normally.\n\n## Running a Private Network\n\nFor detailed instructions on running a private network, refer to the [consensus node documentation](docs/consensus.md).\n\n## Smart Contract Development\n\nFor guidance on developing smart contracts with EpicChainGo, visit the [EpicChainGo smart contract development workshop](https://github.com/epicchainlabs/epicchain-go-sc-wrkshp). This workshop provides examples of simple contracts that can be compiled, deployed, and run using the EpicChainGo compiler, SDK, and a private network. For specifics on translating Go code to EpicChain VM bytecode and contract limitations, consult the [compiler documentation](docs/compiler.md).\n\nExplore more EpicChain smart contract examples written in Go in the [examples directory](examples/README.md).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepicchainlabs%2Fepicchain-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepicchainlabs%2Fepicchain-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepicchainlabs%2Fepicchain-go/lists"}