This guide provides comprehensive information for developers who want to contribute to or build with SVMKit. Whether you're looking to submit a PR, build your own fork, or integrate SVMKit into your project, you'll find everything you need here.
- Go 1.22+ - Primary development language
- golangci-lint - Code linting and static analysis
- make - Build automation
# macOS (using Homebrew)
brew install go golangci-lint make
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install golang-1.22 make
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
# Verify installations
go version
~/go/bin/golangci-lint --version
make --versionsvmkit/
├── agave/ # Agave validator implementation
│ ├── assets/ # Validator deployment assets
│
├── runner/ # Deployment and execution system
│ ├── assets/ # Runner deployment assets
│
└── solana/ # Core Solana functionality
└── assets/ # Solana-specific scriptsgit clone https://github.com/abklabs/svmkit.git
cd svmkit# Run all tests
make test
# Run specific test
go test ./pkg/agave -run TestValidatorEnv
-
Add fork configuration in
pkg/agave/validator.go:Copyconst ( VariantNewFork Variant = "newfork" )
-
Implement fork-specific logic in
pkg/agave/assets/ -
Update build scripts in
build/ -
Add tests
-
Update documentation