DevOps
Open Source Development
At aelf, we prioritize openness and transparency in our development process. Our project is fully open source, and we share our code and current issues online. This approach helps keep our project accessible to everyone.
Collaborative Standard
We value collaboration and welcome contributions and feedback. However, to maintain high standards, we ask all collaborators to follow these guidelines:
- Understand aelf: Before contributing, read our white paper and documentation to understand the core concepts and architecture. Reviewing our code and existing functionalities is also recommended.
- Ask Questions: If you have any questions, open an issue on GitHub. Clearly state what you need to clarify.
- Submit Pull Requests: When you're ready to contribute, submit a pull request on GitHub. Our core team will review and discuss your submission. If approved, it will be merged into the project.
For more details, please refer to our Code of Conduct.
Deployment
We use the semantic versioning system (SemVer) for version control. For more information, visit SemVer.
Daily Builds
We have a cron job integrated with GitHub that publishes the latest version of our development packages to MyGet. You can find them here:
Release Branch
For stable releases, our packages are available on NuGet:
Testing
Testing is crucial for maintaining and improving software quality. We focus on two main types of testing: unit testing and performance testing.
Unit Testing
Unit tests ensure the functionality and protocol integrity of our blockchain system. We use the xUnit framework and follow best practices to cover as much functionality as possible. For any new feature, we ensure it is covered by unit tests to prevent regressions and allow safe modifications.
Performance Testing
Performance testing is vital for aelf, as speed is one of our system's key strengths. These tests help ensure that changes do not negatively impact the transaction and block processing speed of our nodes.
Monitoring
Server Monitoring
We use Zabbix to monitor server metrics such as CPU usage and database performance.
Chain Monitoring
Our GitHub project includes a Grafana dashboard powered by InfluxDB for chain monitoring.
Akka Monitoring
We monitor actors in our system using Akka.