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 --version
svmkit/
├── agave/ # Agave validator implementation
│ ├── assets/ # Validator deployment assets
│
├── runner/ # Deployment and execution system
│ ├── assets/ # Runner deployment assets
│
└── solana/ # Core Solana functionality
└── assets/ # Solana-specific scripts
git 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