You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.4 KiB
2.4 KiB
libsecp256k1 Deployment Guide
All build scripts have been updated to ensure libsecp256k1.so is placed next to the executable.
Updated Scripts
1. GitHub Actions (.github/workflows/go.yml)
- Build job: Installs libsecp256k1 from source, enables CGO
- Release job: Builds with CGO, copies
libsecp256k1.soto release-binaries/ - Both the binary and library are included in releases
2. Deployment Script (scripts/deploy.sh)
- Builds with
CGO_ENABLED=1 - Copies
pkg/crypto/p8k/libsecp256k1.sonext to the binary - Installs both binary and library to
$GOBIN/
3. Benchmark Script (scripts/benchmark.sh)
- Builds benchmark binary with
CGO_ENABLED=1 - Copies library to
cmd/benchmark/directory
4. Profile Script (cmd/benchmark/profile.sh)
- Builds relay with
CGO_ENABLED=1 - Copies library next to relay binary
- Copies library to benchmark run directory
5. Test Deploy Script (scripts/test-deploy-local.sh)
- Tests build with
CGO_ENABLED=1 - Verifies library is copied correctly
Runtime Requirements
The library will be found automatically if:
- It's in the same directory as the executable
- It's in a standard library path (/usr/local/lib, /usr/lib)
LD_LIBRARY_PATHincludes the directory containing it
Distribution
When distributing binaries, include both:
orly(or other binary name)libsecp256k1.so
Users can run with:
./orly
Or explicitly set the library path:
LD_LIBRARY_PATH=. ./orly
Building from Source
All scripts automatically handle the library placement:
# Deploy to production
./scripts/deploy.sh
# Build for local testing
CGO_ENABLED=1 go build -o orly .
cp pkg/crypto/p8k/libsecp256k1.so .
Test Scripts Updated
All test scripts now ensure libsecp256k1.so is available:
Test Scripts
scripts/runtests.sh- Sets CGO_ENABLED=1 and LD_LIBRARY_PATHscripts/test.sh- Sets CGO_ENABLED=1 and LD_LIBRARY_PATHscripts/test_policy.sh- Sets CGO_ENABLED=1 and LD_LIBRARY_PATHscripts/test-managed-acl.sh- Sets CGO_ENABLED=1 and LD_LIBRARY_PATHscripts/test-workflow-local.sh- Matches GitHub Actions with CGO enabled
Docker Files
cmd/benchmark/Dockerfile.next-orly- Copies libsecp256k1.so to /app/cmd/benchmark/Dockerfile.benchmark- Builds and includes libsecp256k1
All test environments now have access to libsecp256k1.so for CGO-based cryptographic operations.