Skip to content

Commit c6ce11d

Browse files
author
Tyler Smith
authored
Merge pull request #1 from StephenButtolph/update-ipcs
Resolve merge conflicts
2 parents 7014fc8 + ab27ef9 commit c6ce11d

File tree

32 files changed

+324
-42
lines changed

32 files changed

+324
-42
lines changed

.ci/run_e2e_tests.sh

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,23 @@ SRC_PATH=$(dirname "${SCRIPTS_PATH}")
44
bash "${SRC_PATH}"/scripts/build_image.sh
55
GECKO_IMAGE=$(docker image ls --format="{{.Repository}}" | head -n 1)
66

7+
# login to AWS for byzantine images
8+
export AWS_ACCESS_KEY_ID="${BYZ_REG_AWS_ID}"
9+
export AWS_SECRET_ACCESS_KEY="${BYZ_REG_AWS_KEY}"
10+
export AWS_DEFAULT_REGION="${BYZ_REG_AWS_REGION}"
11+
aws ecr get-login-password --region "${AWS_DEFAULT_REGION}" | docker login --username AWS --password-stdin 964377072876.dkr.ecr.us-east-1.amazonaws.com
12+
CHIT_SPAMMER_IMAGE="964377072876.dkr.ecr.us-east-1.amazonaws.com/gecko-byzantine:latest"
13+
14+
docker pull "${CHIT_SPAMMER_IMAGE}"
15+
716
# Turn off GO111MODULE to pull e2e test source code in order to get run script.
8-
GO111MODULE=off go get -t -v github.com/kurtosis-tech/ava-e2e-tests/...
9-
cd "${GOPATH}"/src/github.com/kurtosis-tech/ava-e2e-tests/ || exit
17+
git clone https://github.com/kurtosis-tech/ava-e2e-tests.git
18+
cd ava-e2e-tests/ || exit
19+
git checkout 0.6.0
1020

1121
bash "./scripts/rebuild_initializer_binary.sh"
1222
bash "./scripts/rebuild_controller_image.sh"
1323
# TODO: Make the controller image label a parameter to rebuild_controller_image script
1424
# Standard controller image label used by above scripts.
1525
CONTROLLER_IMAGE="kurtosistech/ava-e2e-tests_controller:latest"
16-
./build/ava-e2e-tests --gecko-image-name="${GECKO_IMAGE}" --test-controller-image-name="${CONTROLLER_IMAGE}" --test-names="fiveStakingNodeGetValidatorsTest,fiveStakingNodeFullyConnectedTest"
26+
./build/ava-e2e-tests --gecko-image-name="${GECKO_IMAGE}" --test-controller-image-name="${CONTROLLER_IMAGE}" --chit-spammer-image-name="${CHIT_SPAMMER_IMAGE}"

.github/workflows/ansible-lint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
scripts/ansible/kill_playbook.yml
1919
scripts/ansible/ping_playbook.yml
2020
scripts/ansible/restart_playbook.yml
21+
scripts/ansible/service_playbook.yml
2122
scripts/ansible/update_playbook.yml
2223
2324
args:

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ env:
1919
- DOCKERHUB_REPO=avaplatform/gecko
2020
- secure: "L/A9+re0NEKP6EV6H9RcTGiDhX3WMvsiWrkRKDYKqnviqbjY30RK6EM4vvjrM4Lrw2QwsO3YKgnku3+zioE/TxEZFkpkbjNUXru0nYBrWAg1TKVsDXnYaIZkHUejfryST3E8N7F4Hx6zCtGEO0sEdUeKuT+MNUIuHezHooTgGzDjMogm70EWMFjQHc7VucTJu7dWU1RBPjovWQ0q9qflrtCpbrvXFIiihQQ1PQha1Q2C4wLakKuLbhhSafue90Mnyss0blaPHy/tyewcASJu4vsGTKRBn0DzttlkNTwuD6+nKrbmJY0ohunnkVFzYjrZAw1gyN+DCDb/lPbz4ZDItKPwrIUPEtL5xuUOrxUZPUh+0io3Q2d6rjaqkdGjd1KQXzbnW1mn0BxX3d3b2UpIqhBn9umYYjHBKnMuoRiTK33b7U9+LF3K84+tEvVDCPeHs/mw6Inp5jGRSravnM6yPQ6feGzogs4+3EMzZXxnkngKFKCsnd67Oe9xfV9amOU2aQAx4jaAwlPjEpBEkUa8YKx3lPznvmUk1QsNCUbLjdSl5JBaXojLJoiuPbj29hp4S5AXXgn+3Hvwk3ndcFCxi6/l1W9mjYSOtFqg3EAUdF4EgnA/ykQg9ZokkoKY0+qgOzG2bKOAYuCDWeGr7P1apToh00ccsQXL81nVPiq7uDw="
2121
- secure: "zfTm7tJBYiPYrli76d4Ep6Lc2TJQ8Xv//+7OoqTA/aIf6YJDHe05f2GFTWAHG2iOIix/yjwHYwnhyIW66eWPb+Ujejnmh4eXlYZFufX9J5jUpDpbFu/+ybOLgE1Tmr0je0ycneSMe/NAaS74nWU1wnP34/cEE4sYL7TJyhwbeEtgz3cbSWwkpdvHFbXCjSOA196jdIYYUwsnqU9yycAG+2WUSk3DHHzzdtMrh/UOH2r1VFyp5US0zmbW90WkWX+o3TIlzZJgTUGQRNnWKq95Mrh1EQotxgL6CJ8NkfY4bVAGAhusPjdjscJsHxfY93WRMH64TzPYYp0zdibatH0ztyhnZPXVKqv+AIIVTEW+xWv5V18kTQAd1uBW103NFacbgXhIGWtbFcN9g1+ws29HROMclYs7ci6+72Qnq0eL55huqSyFx6+InhYwn+LfJmaBcGW4wx1umdp505M0obZ4ghlyn6b0pDYmqsu1XyBC3mjUTFbwlQmWE2Fize4L5o+DdH4ZDc9japF9ntxIMvO+b3nOicr7tplY2AGp61bB89o3dUAFlN5mDaEJotiAuFk5mo244rY1FjSzyGiKkA3M9TkTIbgcbN098hOJoMCYybH7yqiPwNnZiFvUuYjHuC5D1kIYBWuqqO0iVcbIZn0rV2jyzbVFlhFVk2clTZGhkrY="
22-
before_install:
22+
before_install:
23+
- pip install --user awscli # need awscli to access byz-gecko images
2324
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then .ci/before_install_linux.sh; fi
2425

2526
install:

api/ipcs/server.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"fmt"
88
"net/http"
99

10-
_ "nanomsg.org/go/mangos/v2/transport/ipc" // registers the IPC transport
10+
_ "go.nanomsg.org/mangos/v3/transport/ipc" // registers the IPC transport
1111

1212
"github.com/gorilla/rpc/v2"
1313

@@ -19,7 +19,7 @@ import (
1919
"github.com/ava-labs/gecko/utils/logging"
2020
)
2121

22-
// IPCs maintains the IPCs
22+
// IPCServer maintains the IPCs
2323
type IPCServer struct {
2424
httpServer *api.Server
2525
chainManager chains.Manager
@@ -57,17 +57,17 @@ type PublishBlockchainReply struct {
5757
}
5858

5959
// PublishBlockchain publishes the finalized accepted transactions from the blockchainID over the IPC
60-
func (ipcServer *IPCServer) PublishBlockchain(r *http.Request, args *PublishBlockchainArgs, reply *PublishBlockchainReply) error {
61-
ipcServer.log.Info("IPCs: PublishBlockchain called with BlockchainID: %s", args.BlockchainID)
62-
chainID, err := ipcServer.chainManager.Lookup(args.BlockchainID)
60+
func (ipc *IPCServer) PublishBlockchain(r *http.Request, args *PublishBlockchainArgs, reply *PublishBlockchainReply) error {
61+
ipc.log.Info("IPCs: PublishBlockchain called with BlockchainID: %s", args.BlockchainID)
62+
chainID, err := ipc.chainManager.Lookup(args.BlockchainID)
6363
if err != nil {
64-
ipcServer.log.Error("unknown blockchainID: %s", err)
64+
ipc.log.Error("unknown blockchainID: %s", err)
6565
return err
6666
}
6767

68-
ipcs, err := ipcServer.ipcs.Publish(chainID)
68+
ipcs, err := ipc.ipcs.Publish(chainID)
6969
if err != nil {
70-
ipcServer.log.Error("couldn't publish blockchainID: %s", err)
70+
ipc.log.Error("couldn't publish blockchainID: %s", err)
7171
return err
7272
}
7373

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ require (
4444
github.com/syndtr/goleveldb v1.0.0
4545
github.com/tyler-smith/go-bip39 v1.0.2 // indirect
4646
github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208 // indirect
47+
go.nanomsg.org/mangos/v3 v3.0.1
4748
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37
4849
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2
4950
google.golang.org/grpc v1.29.1
5051
gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200316214253-d7b0ff38cac9 // indirect
5152
gopkg.in/urfave/cli.v1 v1.20.0 // indirect
52-
nanomsg.org/go/mangos/v2 v2.0.8
5353
)

go.sum

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,9 @@ github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhe
265265
github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
266266
github.com/xtaci/kcp-go v5.4.20+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE=
267267
github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae/go.mod h1:gXtu8J62kEgmN++bm9BVICuT/e8yiLI2KFobd/TRFsE=
268+
go.nanomsg.org/mangos v2.0.0+incompatible h1:Ll6GIzeGGld6/bFrVgBB8CjwibhHXZtF5jon+GoH1bE=
269+
go.nanomsg.org/mangos/v3 v3.0.1 h1:xR8nca0ZeAvwsoRWjeEHuR2/B0N+Po/ZJpGNCpDz6To=
270+
go.nanomsg.org/mangos/v3 v3.0.1/go.mod h1:RxVwsn46YtfJ74mF8MeVo+MFjg545KCI50NuZrFXmzc=
268271
go.opencensus.io v0.22.1 h1:8dP3SGL7MPB94crU3bEPplMPe83FI4EouesJUeFHv50=
269272
go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA=
270273
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=

ipcs/chainipc.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
)
1414

1515
const (
16+
// DefaultBaseURL can be used as a reasonable default value for the base URL
1617
DefaultBaseURL = "/tmp"
1718

1819
ipcIdentifierPrefix = "ipc"
@@ -29,7 +30,7 @@ type context struct {
2930
// ChainIPCs maintains IPCs for a set of chains
3031
type ChainIPCs struct {
3132
context
32-
chains map[[32]byte]*eventSockets
33+
chains map[[32]byte]*EventSockets
3334
consensusEvents *triggers.EventDispatcher
3435
decisionEvents *triggers.EventDispatcher
3536
}
@@ -43,7 +44,7 @@ func NewChainIPCs(log logging.Logger, path string, networkID uint32, consensusEv
4344
networkID: networkID,
4445
path: path,
4546
},
46-
chains: make(map[[32]byte]*eventSockets),
47+
chains: make(map[[32]byte]*EventSockets),
4748
consensusEvents: consensusEvents,
4849
decisionEvents: decisionEvents,
4950
}
@@ -56,7 +57,7 @@ func NewChainIPCs(log logging.Logger, path string, networkID uint32, consensusEv
5657
}
5758

5859
// Publish creates a set of eventSockets for the given chainID
59-
func (cipcs *ChainIPCs) Publish(chainID ids.ID) (*eventSockets, error) {
60+
func (cipcs *ChainIPCs) Publish(chainID ids.ID) (*EventSockets, error) {
6061
chainIDKey := chainID.Key()
6162

6263
if es, ok := cipcs.chains[chainIDKey]; ok {

ipcs/eventsocket.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
package ipcs
55

66
import (
7-
"nanomsg.org/go/mangos/v2"
8-
"nanomsg.org/go/mangos/v2/protocol/pub"
7+
"go.nanomsg.org/mangos/v3/protocol/pub"
8+
9+
mangos "go.nanomsg.org/mangos/v3"
910

1011
"github.com/ava-labs/gecko/ids"
1112
"github.com/ava-labs/gecko/snow/triggers"
@@ -19,14 +20,14 @@ type chainEventDipatcher struct {
1920
events *triggers.EventDispatcher
2021
}
2122

22-
// eventSockets is a set of named eventSockets
23-
type eventSockets struct {
23+
// EventSockets is a set of named eventSockets
24+
type EventSockets struct {
2425
consensusSocket *eventSocket
2526
decisionsSocket *eventSocket
2627
}
2728

2829
// newEventSockets creates a *ChainIPCs with both consensus and decisions IPCs
29-
func newEventSockets(ctx context, chainID ids.ID, consensusEvents *triggers.EventDispatcher, decisionEvents *triggers.EventDispatcher) (*eventSockets, error) {
30+
func newEventSockets(ctx context, chainID ids.ID, consensusEvents *triggers.EventDispatcher, decisionEvents *triggers.EventDispatcher) (*EventSockets, error) {
3031
consensusIPC, err := newEventIPCSocket(ctx, chainID, ipcConsensusIdentifier, consensusEvents)
3132
if err != nil {
3233
return nil, err
@@ -37,14 +38,14 @@ func newEventSockets(ctx context, chainID ids.ID, consensusEvents *triggers.Even
3738
return nil, err
3839
}
3940

40-
return &eventSockets{
41+
return &EventSockets{
4142
consensusSocket: consensusIPC,
4243
decisionsSocket: decisionsIPC,
4344
}, nil
4445
}
4546

4647
// Accept delivers a message to the underlying eventSockets
47-
func (ipcs *eventSockets) Accept(chainID, containerID ids.ID, container []byte) error {
48+
func (ipcs *EventSockets) Accept(chainID, containerID ids.ID, container []byte) error {
4849
if ipcs.consensusSocket != nil {
4950
if err := ipcs.consensusSocket.Accept(chainID, containerID, container); err != nil {
5051
return err
@@ -61,7 +62,7 @@ func (ipcs *eventSockets) Accept(chainID, containerID ids.ID, container []byte)
6162
}
6263

6364
// stop closes the underlying eventSockets
64-
func (ipcs *eventSockets) stop() error {
65+
func (ipcs *EventSockets) stop() error {
6566
errs := wrappers.Errs{}
6667

6768
if ipcs.consensusSocket != nil {
@@ -76,12 +77,12 @@ func (ipcs *eventSockets) stop() error {
7677
}
7778

7879
// ConsensusURL returns the URL of socket receiving consensus events
79-
func (ipcs *eventSockets) ConsensusURL() string {
80+
func (ipcs *EventSockets) ConsensusURL() string {
8081
return ipcs.consensusSocket.URL()
8182
}
8283

8384
// DecisionsURL returns the URL of socket receiving decisions events
84-
func (ipcs *eventSockets) DecisionsURL() string {
85+
func (ipcs *EventSockets) DecisionsURL() string {
8586
return ipcs.decisionsSocket.URL()
8687
}
8788

scripts/ansible/ansible.cfg

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
[defaults]
2+
any_errors_fatal = true
23
transport = ssh
34
deprecation_warnings = false
5+
host_key_checking = false
46

57
[ssh_connection]
6-
ssh_args = -o ForwardAgent=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
8+
# Optimisation, speeds up playbook execution by reducing network round trips.
9+
# However, remote systems must not have requiretty set in /etc/sudoers.
10+
pipelining = true
11+
ssh_args =
12+
-C
13+
-o ControlMaster=auto
14+
-o ControlPersist=60s
15+
-o ForwardAgent=yes
16+
-o UserKnownHostsFile=/dev/null

scripts/ansible/inventory.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ava_nodes:
2+
hosts:
3+
localhost:

0 commit comments

Comments
 (0)