mirror of
https://github.com/waku-org/go-zerokit-rln.git
synced 2025-03-01 04:30:33 +00:00
83 lines
2.5 KiB
Markdown
83 lines
2.5 KiB
Markdown
# go-zerokit-rln
|
|
|
|
Go wrappers for [zerokit's RLN](https://github.com/vacp2p/zerokit)
|
|
|
|
|
|
|
|
### Updating vacp2p/zerokit
|
|
|
|
To overcome the limit of 500mb github has for repositories, go-zerokit-rln depends on 3 projects:
|
|
- https://github.com/waku-org/go-zerokit-rln-apple
|
|
- https://github.com/waku-org/go-zerokit-rln-arm
|
|
- https://github.com/waku-org/go-zerokit-rln-x86_64
|
|
|
|
Zerokit must be updated in these 3 repositories. The instructions are the same for each of the architectures,
|
|
except for `-apple` which require macos to be executed. You need to have docker and rust installed.
|
|
|
|
```bash
|
|
export GO_RLN_ARCH=x86_64 # Replace this for x86_64, arm or apple
|
|
export ZEROKIT_COMMIT=master # Use a commit, branch or tag
|
|
|
|
git clone https://github.com/waku-org/go-zerokit-rln_${GO_RLN_ARCH}
|
|
cd go-zerokit-rln-${GO_RLN_ARCH}
|
|
git submodule init
|
|
git submodule update --recursive
|
|
cd zerokit
|
|
git pull
|
|
git checkout ${ZEROKIT_COMMIT}
|
|
cd ..
|
|
make
|
|
git add zerokit
|
|
git add libs/*/librln.a
|
|
git commit -m "chore: bump zerokit"
|
|
git push
|
|
```
|
|
|
|
Once you execute the previous commands for each one of the architectures, update go.mod:
|
|
```bash
|
|
cd /path/to/go-zerokit-rln
|
|
go get github.com/waku-org/go-zerokit-rln-apple@latest
|
|
go get github.com/waku-org/go-zerokit-rln-arm@latest
|
|
go get github.com/waku-org/go-zerokit-rln-x86_64@latest
|
|
git checkout master
|
|
git add go.mod
|
|
git add go.sum
|
|
git commit -m "chore: bump zerokit"
|
|
git push
|
|
```
|
|
|
|
And later in go-waku, update the go-zerokit-rln dependency with
|
|
```
|
|
cd /path/to/go-waku
|
|
git fetch
|
|
git checkout -b `date +"%Y%m%d%H%M%S"-bump-zerokit` origin/master
|
|
go get github.com/waku-org/go-zerokit-rln@latest
|
|
git add go.mod
|
|
git add go.sum
|
|
git commit -m "chore: bump go-zerokit-rln"
|
|
git push
|
|
````
|
|
And create a PR
|
|
|
|
|
|
# Adding a new architecture
|
|
|
|
1. Depending on the architecture/platform you want to add, clone one of these repositories.
|
|
- https://github.com/waku-org/go-zerokit-rln-apple
|
|
- https://github.com/waku-org/go-zerokit-rln-arm
|
|
- https://github.com/waku-org/go-zerokit-rln-x86_64
|
|
2. Edit `./scripts/build.sh` to add the new architecture. Refer to this list of [supported targets](https://github.com/cross-rs/cross#supported-targets)
|
|
3. Edit `./rln/link.go` to add a **cgo** build tag for the new architecture
|
|
4. Commit the changes and then execute
|
|
```bash
|
|
export GO_RLN_ARCH=x86_64 # Replace this for the platform you just updated: x86_64, arm or apple
|
|
cd /path/to/go-zerokit-rln
|
|
git checkout master
|
|
git pull
|
|
go get github.com/waku-org/go-zerokit-rln-${GO_RLN_ARCH}@latest
|
|
git add go.mod
|
|
git add go.sum
|
|
git commit -m "chore: bump go-zerokit-rln-${GO_RLN_ARCH}"
|
|
git push
|
|
```
|