Skip to content

Commit

Permalink
Merge branch 'dev' into version-bump-v1.10.5
Browse files Browse the repository at this point in the history
  • Loading branch information
StephenButtolph authored Jul 18, 2023
2 parents ea24c3d + 5e1e571 commit 775de27
Show file tree
Hide file tree
Showing 17 changed files with 259 additions and 172 deletions.
2 changes: 1 addition & 1 deletion chains/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,7 @@ func (m *manager) buildChain(chainParams ChainParameters, sb subnets.Subnet) (*c
BCLookup: m,
Metrics: vmMetrics,

WarpSigner: warp.NewSigner(m.StakingBLSKey, chainParams.ID),
WarpSigner: warp.NewSigner(m.StakingBLSKey, m.NetworkID, chainParams.ID),

ValidatorState: m.validatorState,
ChainDataDir: chainDataDir,
Expand Down
53 changes: 26 additions & 27 deletions proto/pb/warp/message.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions proto/warp/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ service Signer {
}

message SignRequest {
bytes source_chain_id = 1;
bytes destination_chain_id = 2;
uint32 network_id = 1;
bytes source_chain_id = 2;
bytes payload = 3;
}

Expand Down
38 changes: 38 additions & 0 deletions scripts/install_anr.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -e
set -o nounset
set -o pipefail

# Avalanche root directory
AVALANCHE_PATH=$(
cd "$(dirname "${BASH_SOURCE[0]}")"
cd .. && pwd
)

# Load the constants
source "$AVALANCHE_PATH"/scripts/constants.sh

#################################
# download avalanche-network-runner
# https://github.com/ava-labs/avalanche-network-runner
GOARCH=$(go env GOARCH)
GOOS=$(go env GOOS)
NETWORK_RUNNER_VERSION=1.3.9
anr_workdir=${ANR_WORKDIR:-"/tmp"}
DOWNLOAD_PATH=${anr_workdir}/avalanche-network-runner-v${NETWORK_RUNNER_VERSION}.tar.gz
DOWNLOAD_URL="https://github.com/ava-labs/avalanche-network-runner/releases/download/v${NETWORK_RUNNER_VERSION}/avalanche-network-runner_${NETWORK_RUNNER_VERSION}_${GOOS}_${GOARCH}.tar.gz"
echo "Installing avalanche-network-runner ${NETWORK_RUNNER_VERSION} to ${anr_workdir}/avalanche-network-runner"

# download only if not already downloaded
if [ ! -f "$DOWNLOAD_PATH" ]; then
echo "downloading avalanche-network-runner ${NETWORK_RUNNER_VERSION} at ${DOWNLOAD_URL} to ${DOWNLOAD_PATH}"
curl --fail -L ${DOWNLOAD_URL} -o ${DOWNLOAD_PATH}
else
echo "avalanche-network-runner ${NETWORK_RUNNER_VERSION} already downloaded at ${DOWNLOAD_PATH}"
fi

rm -f ${anr_workdir}/avalanche-network-runner

echo "extracting downloaded avalanche-network-runner"
tar xzvf ${DOWNLOAD_PATH} -C ${anr_workdir}
${anr_workdir}/avalanche-network-runner -h
59 changes: 16 additions & 43 deletions scripts/tests.e2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,41 +14,14 @@ fi
AVALANCHEGO_PATH="${1-}"
if [[ -z "${AVALANCHEGO_PATH}" ]]; then
echo "Missing AVALANCHEGO_PATH argument!"
echo "Usage: ${0} [AVALANCHEGO_PATH]" >> /dev/stderr
echo "Usage: ${0} [AVALANCHEGO_PATH]" >>/dev/stderr
exit 255
fi

# Set the CGO flags to use the portable version of BLST
#
# We use "export" here instead of just setting a bash variable because we need
# to pass this flag to all child processes spawned by the shell.
export CGO_CFLAGS="-O -D__BLST_PORTABLE__"
# While CGO_ENABLED doesn't need to be explicitly set, it produces a much more
# clear error due to the default value change in go1.20.
export CGO_ENABLED=1

#################################
# download avalanche-network-runner
# https://github.com/ava-labs/avalanche-network-runner
# TODO: migrate to upstream avalanche-network-runner
GOARCH=$(go env GOARCH)
GOOS=$(go env GOOS)
NETWORK_RUNNER_VERSION=1.3.5-rc.0
DOWNLOAD_PATH=/tmp/avalanche-network-runner.tar.gz
DOWNLOAD_URL="https://github.com/ava-labs/avalanche-network-runner/releases/download/v${NETWORK_RUNNER_VERSION}/avalanche-network-runner_${NETWORK_RUNNER_VERSION}_${GOOS}_${GOARCH}.tar.gz"

rm -f ${DOWNLOAD_PATH}
rm -f /tmp/avalanche-network-runner

echo "downloading avalanche-network-runner ${NETWORK_RUNNER_VERSION} at ${DOWNLOAD_URL} to ${DOWNLOAD_PATH}"
curl --fail -L ${DOWNLOAD_URL} -o ${DOWNLOAD_PATH}

echo "extracting downloaded avalanche-network-runner"
tar xzvf ${DOWNLOAD_PATH} -C /tmp
/tmp/avalanche-network-runner -h

GOPATH="$(go env GOPATH)"
PATH="${GOPATH}/bin:${PATH}"
echo "installing avalanche-network-runner"
ANR_WORKDIR="/tmp"
./scripts/install_anr.sh

#################################
echo "building e2e.test"
Expand All @@ -60,23 +33,23 @@ ACK_GINKGO_RC=true ginkgo build ./tests/e2e
#################################
# run "avalanche-network-runner" server
echo "launch avalanche-network-runner in the background"
/tmp/avalanche-network-runner \
server \
--log-level debug \
--port=":12342" \
--disable-grpc-gateway &
$ANR_WORKDIR/avalanche-network-runner \
server \
--log-level debug \
--port=":12342" \
--disable-grpc-gateway &
PID=${!}

#################################
echo "running e2e tests against the local cluster with ${AVALANCHEGO_PATH}"
./tests/e2e/e2e.test \
--ginkgo.v \
--log-level debug \
--network-runner-grpc-endpoint="0.0.0.0:12342" \
--network-runner-avalanchego-path=${AVALANCHEGO_PATH} \
--network-runner-avalanchego-log-level="WARN" \
--test-keys-file=tests/test.insecure.secp256k1.keys \
&& EXIT_CODE=$? || EXIT_CODE=$?
--ginkgo.v \
--log-level debug \
--network-runner-grpc-endpoint="0.0.0.0:12342" \
--network-runner-avalanchego-path=${AVALANCHEGO_PATH} \
--network-runner-avalanchego-log-level="WARN" \
--test-keys-file=tests/test.insecure.secp256k1.keys &&
EXIT_CODE=$? || EXIT_CODE=$?

kill ${PID}

Expand Down
47 changes: 16 additions & 31 deletions scripts/tests.upgrade.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ fi
VERSION=$1
if [[ -z "${VERSION}" ]]; then
echo "Missing version argument!"
echo "Usage: ${0} [VERSION] [NEW-BINARY]" >> /dev/stderr
echo "Usage: ${0} [VERSION] [NEW-BINARY]" >>/dev/stderr
exit 255
fi

NEW_BINARY=$2
if [[ -z "${NEW_BINARY}" ]]; then
echo "Missing new binary path argument!"
echo "Usage: ${0} [VERSION] [NEW-BINARY]" >> /dev/stderr
echo "Usage: ${0} [VERSION] [NEW-BINARY]" >>/dev/stderr
exit 255
fi

Expand Down Expand Up @@ -52,24 +52,9 @@ fi
find /tmp/avalanchego-v${VERSION}

#################################
# download avalanche-network-runner
# https://github.com/ava-labs/avalanche-network-runner
NETWORK_RUNNER_VERSION=1.3.5-rc.0
DOWNLOAD_PATH=/tmp/avalanche-network-runner.tar.gz
DOWNLOAD_URL="https://github.com/ava-labs/avalanche-network-runner/releases/download/v${NETWORK_RUNNER_VERSION}/avalanche-network-runner_${NETWORK_RUNNER_VERSION}_${GOOS}_${GOARCH}.tar.gz"
if [[ ${GOOS} == "darwin" ]]; then
DOWNLOAD_URL="https://github.com/ava-labs/avalanche-network-runner/releases/download/v${NETWORK_RUNNER_VERSION}/avalanche-network-runner_${NETWORK_RUNNER_VERSION}_darwin_amd64.tar.gz"
fi

rm -f ${DOWNLOAD_PATH}
rm -f /tmp/avalanche-network-runner

echo "downloading avalanche-network-runner ${NETWORK_RUNNER_VERSION} at ${DOWNLOAD_URL}"
curl -L ${DOWNLOAD_URL} -o ${DOWNLOAD_PATH}

echo "extracting downloaded avalanche-network-runner"
tar xzvf ${DOWNLOAD_PATH} -C /tmp
/tmp/avalanche-network-runner -h
echo "installing avalanche-network-runner"
ANR_WORKDIR="/tmp"
./scripts/install_anr.sh

#################################
echo "building upgrade.test"
Expand All @@ -81,23 +66,23 @@ ACK_GINKGO_RC=true ginkgo build ./tests/upgrade
#################################
# run "avalanche-network-runner" server
echo "launch avalanche-network-runner in the background"
/tmp/avalanche-network-runner \
server \
--log-level debug \
--port=":12340" \
--disable-grpc-gateway &
$ANR_WORKDIR/avalanche-network-runner \
server \
--log-level debug \
--port=":12340" \
--disable-grpc-gateway &
PID=${!}

#################################
# By default, it runs all upgrade test cases!
echo "running upgrade tests against the local cluster with ${NEW_BINARY}"
./tests/upgrade/upgrade.test \
--ginkgo.v \
--log-level debug \
--network-runner-grpc-endpoint="0.0.0.0:12340" \
--network-runner-avalanchego-path=/tmp/avalanchego-v${VERSION}/avalanchego \
--network-runner-avalanchego-path-to-upgrade=${NEW_BINARY} \
--network-runner-avalanchego-log-level="WARN" || EXIT_CODE=$?
--ginkgo.v \
--log-level debug \
--network-runner-grpc-endpoint="0.0.0.0:12340" \
--network-runner-avalanchego-path=/tmp/avalanchego-v${VERSION}/avalanchego \
--network-runner-avalanchego-path-to-upgrade=${NEW_BINARY} \
--network-runner-avalanchego-log-level="WARN" || EXIT_CODE=$?

# "e2e.test" already terminates the cluster
# just in case tests are aborted, manually terminate them again
Expand Down
6 changes: 3 additions & 3 deletions vms/platformvm/warp/gwarp/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ func NewClient(client pb.SignerClient) *Client {

func (c *Client) Sign(unsignedMsg *warp.UnsignedMessage) ([]byte, error) {
resp, err := c.client.Sign(context.Background(), &pb.SignRequest{
SourceChainId: unsignedMsg.SourceChainID[:],
DestinationChainId: unsignedMsg.DestinationChainID[:],
Payload: unsignedMsg.Payload,
NetworkId: unsignedMsg.NetworkID,
SourceChainId: unsignedMsg.SourceChainID[:],
Payload: unsignedMsg.Payload,
})
if err != nil {
return nil, err
Expand Down
7 changes: 1 addition & 6 deletions vms/platformvm/warp/gwarp/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,9 @@ func (s *Server) Sign(_ context.Context, unsignedMsg *pb.SignRequest) (*pb.SignR
return nil, err
}

destinationChainID, err := ids.ToID(unsignedMsg.DestinationChainId)
if err != nil {
return nil, err
}

msg, err := warp.NewUnsignedMessage(
unsignedMsg.NetworkId,
sourceChainID,
destinationChainID,
unsignedMsg.Payload,
)
if err != nil {
Expand Down
21 changes: 12 additions & 9 deletions vms/platformvm/warp/gwarp/signer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/stretchr/testify/require"

"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/utils/constants"
"github.com/ava-labs/avalanchego/utils/crypto/bls"
"github.com/ava-labs/avalanchego/vms/platformvm/warp"
"github.com/ava-labs/avalanchego/vms/rpcchainvm/grpcutils"
Expand All @@ -17,11 +18,12 @@ import (
)

type testSigner struct {
client *Client
server warp.Signer
sk *bls.SecretKey
chainID ids.ID
closeFn func()
client *Client
server warp.Signer
sk *bls.SecretKey
networkID uint32
chainID ids.ID
closeFn func()
}

func setupSigner(t testing.TB) *testSigner {
Expand All @@ -33,9 +35,10 @@ func setupSigner(t testing.TB) *testSigner {
chainID := ids.GenerateTestID()

s := &testSigner{
server: warp.NewSigner(sk, chainID),
sk: sk,
chainID: chainID,
server: warp.NewSigner(sk, constants.UnitTestID, chainID),
sk: sk,
networkID: constants.UnitTestID,
chainID: chainID,
}

listener, err := grpcutils.NewListener()
Expand Down Expand Up @@ -63,7 +66,7 @@ func setupSigner(t testing.TB) *testSigner {
func TestInterface(t *testing.T) {
for _, test := range warp.SignerTests {
s := setupSigner(t)
test(t, s.client, s.sk, s.chainID)
test(t, s.client, s.sk, s.networkID, s.chainID)
s.closeFn()
}
}
3 changes: 2 additions & 1 deletion vms/platformvm/warp/message_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,15 @@ import (

"github.com/ava-labs/avalanchego/codec"
"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/utils/constants"
"github.com/ava-labs/avalanchego/utils/crypto/bls"
)

func TestMessage(t *testing.T) {
require := require.New(t)

unsignedMsg, err := NewUnsignedMessage(
ids.GenerateTestID(),
constants.UnitTestID,
ids.GenerateTestID(),
[]byte("payload"),
)
Expand Down
Loading

0 comments on commit 775de27

Please sign in to comment.