EpicChain is an advanced blockchain platform designed to provide a flexible and high-performance environment for decentralized applications and services. Developed using the Go programming language, EpicChain utilizes a modular plugin architecture that allows for extensive customization and scalability.
- Modular Architecture: EpicChain's plugin-based system allows users to easily extend functionality. You can integrate new features or customize existing ones by writing and adding plugins.
- Protocol Support: EpicChain supports various communication protocols including traditional DNS over UDP/TCP, DNS over TLS (DoT), DNS over HTTP/2 (DoH), and gRPC.
- Dynamic Functionality: The platform supports numerous functions such as serving DNS zone data, DNSSEC, load balancing, caching, and more. With EpicChain, you can handle complex DNS queries, manage zone transfers, and ensure robust security and performance.
- Advanced Configuration: EpicChain allows for detailed configuration including load balancing, query logging, error handling, and integration with various backends such as etcd and Kubernetes.
- High Performance: The platform is designed for efficiency with features like caching, load balancing, and support for high-throughput transactions.
To build EpicChain from source, ensure you have a working Go environment (version 1.12 or higher). Follow these steps:
$ git clone https://github.com/epicchainlabs/coreDNS-plugin-chain
$ cd coreDNS-plugin-chain
$ make
This will compile the epicchain
binary.
If you prefer using Docker, you can build EpicChain without setting up a Go environment:
$ docker run --rm -i -t -v $PWD:/v -w /v golang:1.16 make
This command will create the epicchain
binary within the Docker container.
EpicChain's configuration is managed through a file named Epicfile
. Here are some examples to get you started:
-
Basic Setup:
To run EpicChain with basic logging and serve requests on port 53:
:53 { whoami log }
-
Custom Port:
If port 53 is occupied, you can configure EpicChain to use port 1053:
:1053 { whoami log }
-
Forwarding Queries:
To forward all queries to an upstream server (e.g., Google DNS at 8.8.8.8):
:53 { forward . 8.8.8.8:53 log }
-
Serving DNSSEC-Signed Zones:
To serve DNSSEC-signed data for
example.org
:example.org:1053 { file /var/lib/epicchain/example.org.signed transfer { to * 2001:500:8f::53 } errors log }
-
Advanced Configurations:
To handle different types of queries and protocols:
tls://example.org grpc://example.org { whoami } https://example.org { whoami tls mycert mykey }
Stay connected with the EpicChain community and get support:
- GitHub: EpicChain GitHub Repository
- Slack: Join us on Slack at #epicchain here
- Website: EpicChain Official Website
- Blog: EpicChain Blog
- Twitter: @EpicChain
- Mailing List: epicchain-discuss@googlegroups.com
Interested in contributing? Check out our contribution guidelines to learn how you can get involved.
For detailed deployment examples, including systemd configurations, visit our deployment repository.
EpicChain follows a structured deprecation policy to manage backwards incompatible changes:
- Announcement: Notify users about upcoming incompatible changes in the release notes.
- Implementation: Introduce changes in a minor release, ensuring backward compatibility.
- Removal: Remove support for deprecated features in a subsequent patch release.
Security Audit: EpicChain undergoes regular security audits to ensure robustness. Review our audit report for details.
Reporting Vulnerabilities: If you discover a security issue, please report it privately to security@epic-chain.org
. Your contributions to our security are greatly appreciated.
For detailed security practices, refer to our security documentation.