SDK for the Camino network - a blockchains platform for the touristic market.
Beginning with v0.2.0 CaminoGo does not any longer build binaries. Instead it is used as the core SDK for other components in the Camino environment like camino-node, caminoethvm, camino-network-runner ....
Reason is, that there have been circular dependencies between the different go modules which made it hard to deploy binaries based on the same caminogo implementation
Caminogo uses multiple tools to generate efficient and boilerplate code.
To regenerate the protobuf go code, run scripts/protobuf_codegen.sh
from the root of the repo.
This should only be necessary when upgrading protobuf versions or modifying .proto definition files.
To use this script, you must have buf (v1.9.0), protoc-gen-go (v1.28.0) and protoc-gen-go-grpc (v1.2.0) installed.
To install the buf dependencies:
go install google.golang.org/protobuf/cmd/[email protected]
go install google.golang.org/grpc/cmd/[email protected]
If you have not already, you may need to add $GOPATH/bin
to your $PATH
:
export PATH="$PATH:$(go env GOPATH)/bin"
If you extract buf to ~/software/buf/bin, the following should work:
export PATH=$PATH:~/software/buf/bin/:~/go/bin
go get google.golang.org/protobuf/cmd/protoc-gen-go
go get google.golang.org/protobuf/cmd/protoc-gen-go-grpc
scripts/protobuf_codegen.sh
For more information, refer to the GRPC Golang Quick Start Guide.
docker build -t chain4travel:protobuf_codegen -f api/Dockerfile.buf .
docker run -t -i -v $(pwd):/opt/chain4travel -w/opt/chain4travel chain4travel:protobuf_codegen bash -c "scripts/protobuf_codegen.sh"
To regenerate the gomock code, run scripts/mock.gen.sh
from the root of the repo.
This should only be necessary when modifying exported interfaces or after modifying scripts/mock.mockgen.txt
.
AvalancheGo is first and foremost a client for the Avalanche network. The versioning of AvalancheGo follows that of the Avalanche network.
v0.x.x
indicates a development network version.v1.x.x
indicates a production network version.vx.[Upgrade].x
indicates the number of network upgrades that have occurred.vx.x.[Patch]
indicates the number of client upgrades that have occurred since the last network upgrade.
Because AvalancheGo's version denotes the network version, it is expected that interfaces exported by AvalancheGo's packages may change in Patch
version updates.
APIs exposed when running AvalancheGo will maintain backwards compatibility, unless the functionality is explicitly deprecated and announced when removed.
CaminoGo can be used on different platforms, with different support tiers:
- Tier 1: Fully supported by the maintainers, guaranteed to pass all tests including e2e and stress tests.
- Tier 2: Passes all unit and integration tests but not necessarily e2e tests.
- Tier 3: Builds but lightly tested (or not), considered experimental.
- Not supported: May not build and not tested, considered unsafe. To be supported in the future.
The following table lists currently supported platforms and their corresponding CaminoGo support tiers:
Architecture | Operating system | Support tier |
---|---|---|
amd64 | Linux | 1 |
arm64 | Linux | 2 |
amd64 | Darwin | 2 |
amd64 | Windows | 3 |
arm | Linux | Not supported |
i386 | Linux | Not supported |
arm64 | Darwin | Not supported |
To officially support a new platform, one must satisfy the following requirements:
CaminoGo continuous integration | Tier 1 | Tier 2 | Tier 3 |
---|---|---|---|
Build passes | ✓ | ✓ | ✓ |
Unit and integration tests pass | ✓ | ✓ | |
End-to-end and stress tests pass | ✓ |
We and our community welcome responsible disclosures.
If you've discovered a security vulnerability, please report it to us via discord. Valid reports will be eligible for a reward (terms and conditions apply).