Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into rfc-18/use-docker-b…
Browse files Browse the repository at this point in the history
…uild-publish-action
  • Loading branch information
nkuba committed Feb 15, 2021
2 parents b509291 + 8350928 commit b1612f1
Show file tree
Hide file tree
Showing 13 changed files with 159 additions and 5 deletions.
4 changes: 3 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,9 @@ workflows:
- build_client_and_test_go:
filters:
branches:
ignore: master
ignore:
- master
- /rfc-18\/.*/
context: keep-dev
- build_token_dashboard_dapp:
filters:
Expand Down
15 changes: 11 additions & 4 deletions .github/workflows/client.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
name: Go

#TODO: extend the conditions once workflow gets tested together with other workflows
on:
#TODO: extend the conditions once workflow gets tested together with other workflows
on:
push:
branches:
- master
# TODO: Run on master after we're fully migrated from Circle CI
# - master
- "rfc-18/**"
pull_request:
branches:
# TODO: Run on all branches after we're fully migrated from Circle CI
- "rfc-18/**"
workflow_dispatch:

jobs:
Expand Down Expand Up @@ -48,19 +53,21 @@ jobs:
- name: Create test results directory
run: |
mkdir test-results
- name: Run Go tests
run: |
docker run \
--volume $GITHUB_WORKSPACE/test-results:/mnt/test-results \
--workdir /go/src/github.com/keep-network/keep-core \
go-build-env \
gotestsum --junitfile /mnt/test-results/unit-tests.xml
- name: Publish unit test results
uses: EnricoMi/[email protected]
if: always() # guarantees that this action always runs, even if earlier steps fail
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
files: ./test-results/unit-tests.xml
files: ./test-results/unit-tests.xml
check_name: Go Test Results # name under which test results will be presented in GitHub (optional)
comment_on_pr: false # turns off commenting on Pull Requests

Expand Down
1 change: 1 addition & 0 deletions infrastructure/docker/celo/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
data/
40 changes: 40 additions & 0 deletions infrastructure/docker/celo/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
FROM golang:1.14-alpine AS gobuild

RUN apk add --update --no-cache \
g++ \
linux-headers \
make \
git

ENV BIN_PATH=/usr/local/bin

# Clone, compile, and install Celo blockchain v1.2.2
RUN git clone https://github.com/celo-org/celo-blockchain.git
WORKDIR /go/celo-blockchain
RUN git checkout v1.2.2
RUN make geth-musl
RUN cp build/bin/geth $BIN_PATH

FROM alpine:3.10

ENV BIN_PATH=/usr/local/bin
# Environment variables used in start.sh
ENV CELO_DATA_DIR=/mnt/data
ENV CELO_INIT_DIR=/celo-init
ENV CELO_RPC_PORT=8545
ENV CELO_WS_PORT=8546

# Volume where chain data are persisted
VOLUME [$CELO_DATA_DIR]

EXPOSE $CELO_RPC_PORT
EXPOSE $CELO_WS_PORT

COPY --from=gobuild $BIN_PATH/geth $BIN_PATH

# Add celo-init directory. It contains genesis.json file and
# keystore used in start.sh
ADD ./celo-init $CELO_INIT_DIR

ADD ./start.sh .
ENTRYPOINT ["./start.sh"]
28 changes: 28 additions & 0 deletions infrastructure/docker/celo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Celo client Docker image for local development

Building the image:
```
$ docker build -t celo-dev .
```

Starting Celo blockchain locally exposing ports 8545 and 8546:
```
$ docker run -it -v $(pwd)/data:/mnt/data -p 8545:8545 -p 8546:8546 celo-dev
```

Starting Celo blockchain locally with RPC and WS ports randomly assigned
and checking which ports were assigned:
```
$ docker run -P -it -v $(pwd)/data:/mnt/data --name celo-dev celo-dev
```

```
$ docker port celo-dev
```

`$(pwd)/data` directory is where the chain data will be stored.

In case the developer wants to start from a fresh chain, it is enough to remove
chain data: `$ rm -rf data/celo`, or even remove the entire data directory:
`$ rm -rf data` and start the container again. Keystore will be automatically
populated and chain genesis executed.
54 changes: 54 additions & 0 deletions infrastructure/docker/celo/celo-init/genesis.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"config": {
"homesteadBlock": 0,
"eip150Block": 0,
"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"chainId": 1101,
"istanbul": {
"policy": 2,
"requesttimeout": 3000,
"epoch": 10,
"lookbackwindow": 2
}
},
"nonce": "0x0",
"timestamp": "0x5b843511",
"gasLimit": "0x8000000",
"extraData": "0xecc833a7747eaa8327335e8e0c6b6d8aa3a38d0063591e43ce116ccf5c89753ef9018ad5942b2976824682233807a197081119da511af12f7af862b860a2d1920d598e6b84bbc66e5fcf061f2eedde628b209f49bc0a08048e561e870a17b48c76d14eddcc5903826ac66f9b0012cdbea15ec09bb026ba784bfc89eb6971e41a83fdc7d8ff9a3fa75f26c5e2493f93df2d768e6a7be21b27945a416c0080b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f86480b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f86480b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080",
"difficulty": "0x1",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": {
"2b2976824682233807a197081119da511af12f7a": {
"balance": "20000000000000000000000000"
},
"a44297a7789725e1ca4824c973d00bef3cdcef02": {
"balance": "20000000000000000000000000"
},
"eaec663a8a226e92ea2ff82ba75cf9562dd7a349": {
"balance": "20000000000000000000000000"
},
"ac7ecbf5a908d5bbb8185637f8e5475230f7fc98": {
"balance": "20000000000000000000000000"
},
"221df07ac9806020e4ff2ad2003e5f5d64bbaaa4": {
"balance": "20000000000000000000000000"
},
"000000000000000000000000000000000000ce10": {
"code": "0x60806040526004361061004a5760003560e01c806303386ba3146101e757806342404e0714610280578063bb913f41146102d7578063d29d44ee14610328578063f7e6af8014610379575b6000600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b9050600081549050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610136576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f20496d706c656d656e746174696f6e20736574000000000000000000000081525060200191505060405180910390fd5b61013f816103d0565b6101b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c696420636f6e74726163742061646472657373000000000000000081525060200191505060405180910390fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e82600081146101e3578282f35b8282fd5b61027e600480360360408110156101fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561023a57600080fd5b82018360208201111561024c57600080fd5b8035906020019184600183028401116401000000008311171561026e57600080fd5b909192939192939050505061041b565b005b34801561028c57600080fd5b506102956105c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e357600080fd5b50610326600480360360208110156102fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061060d565b005b34801561033457600080fd5b506103776004803603602081101561034b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107bd565b005b34801561038557600080fd5b5061038e610871565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561041257506000801b8214155b92505050919050565b610423610871565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f73656e64657220776173206e6f74206f776e657200000000000000000000000081525060200191505060405180910390fd5b6104cc8361060d565b600060608473ffffffffffffffffffffffffffffffffffffffff168484604051808383808284378083019250505092505050600060405180830381855af49150503d8060008114610539576040519150601f19603f3d011682016040523d82523d6000602084013e61053e565b606091505b508092508193505050816105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f696e697469616c697a6174696f6e2063616c6c6261636b206661696c6564000081525060200191505060405180910390fd5b5050505050565b600080600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b9050805491505090565b610615610871565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f73656e64657220776173206e6f74206f776e657200000000000000000000000081525060200191505060405180910390fd5b6000600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b9050610701826103d0565b610773576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c696420636f6e74726163742061646472657373000000000000000081525060200191505060405180910390fd5b8181558173ffffffffffffffffffffffffffffffffffffffff167fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1360405160405180910390a25050565b6107c5610871565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610865576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f73656e64657220776173206e6f74206f776e657200000000000000000000000081525060200191505060405180910390fd5b61086e816108bd565b50565b600080600160405180807f656970313936372e70726f78792e61646d696e000000000000000000000000008152506013019050604051809103902060001c0360001b9050805491505090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6f776e65722063616e6e6f74206265203000000000000000000000000000000081525060200191505060405180910390fd5b6000600160405180807f656970313936372e70726f78792e61646d696e000000000000000000000000008152506013019050604051809103902060001c0360001b90508181558173ffffffffffffffffffffffffffffffffffffffff167f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe260405160405180910390a2505056fea265627a7a72315820c6403df0b5e902e1433550bf213a8db6f228d5f274ea53241fc8fee572c1703464736f6c634300050d0032",
"storage": {
"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "2b2976824682233807a197081119da511af12f7a"
},
"balance": "0"
}
},
"number": "0x0",
"gasUsed": "0x0",
"mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"address":"2b2976824682233807a197081119da511af12f7a","blspublickey":"a2d1920d598e6b84bbc66e5fcf061f2eedde628b209f49bc0a08048e561e870a17b48c76d14eddcc5903826ac66f9b0012cdbea15ec09bb026ba784bfc89eb6971e41a83fdc7d8ff9a3fa75f26c5e2493f93df2d768e6a7be21b27945a416c00","crypto":{"cipher":"aes-128-ctr","ciphertext":"35364b63fd04df37ab232631e7a6c0de92661a2c7356c70d57565f61400a8955","cipherparams":{"iv":"99ede6ebba0485b5a911d3acc2962695"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"8cb316db77ed19e21f0279c9316fc0f6f005cd41c49287e94b8522a70c6f2638"},"mac":"ef45d91ee9dc73180f5c80eee4f75d293e66d0d017417f22ac77d8d5957b490d"},"id":"535acdcd-b935-4bbc-9097-d21d97aefab0","version":3}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"address":"a44297a7789725e1ca4824c973d00bef3cdcef02","blspublickey":"70fe7d8c0d0520166b022c34e6b9f54448717e56953ee53d37cd4b982b03de39ad9ac88f69558d32920bae692067250017c0df65af5691d037862cd34303246b43199f7e5cbb2df35c81a8fc1ab8fc038d9f59d19f26161e4caa3991026f1b81","crypto":{"cipher":"aes-128-ctr","ciphertext":"864b3f3359aeee203b5807c275643c6574557b40c33e2aa128dfa1c9b9544540","cipherparams":{"iv":"26a67e5c1d95bb7f8473ea9a785068a1"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"4c2e0904009891125cb109675f29231eede8a8923405e0ab83fc28db4923041c"},"mac":"cce303384cef8cd13498329c444cf4162b2d425952a8c6a0f1c54bfca85081e6"},"id":"d5099a43-e87b-4352-bdf0-45b47f83e868","version":3}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"address":"eaec663a8a226e92ea2ff82ba75cf9562dd7a349","blspublickey":"83a349c53aa53a9180ae1374790d6a9297f17744ce41026bf92c02f78bacb86634ab92f5bd1b17b9ddde57b12681cd008cd484d21c38a4a506190dcff11571e2dcaa2c78d17e05df1de92585bd6bd665ee9f4994ba1e88189794f96cfc019980","crypto":{"cipher":"aes-128-ctr","ciphertext":"ac8fb03b22cc1bc5381e972ac36a423a4cd7d3af9ddd0c7ed215a66553db1ddf","cipherparams":{"iv":"33dce6d740b9a79cbbeabd94c494901d"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"3efd9d3e78e13780374fb39c1bb79ab0aa1f75b53fdac181f8924aa7a31babc5"},"mac":"b2a05e8a4e99ace61fe96b6acccb89113d4b807737a8ed68c762f9cff6f56ae2"},"id":"5ebc2164-a049-4d28-89a6-02c5cd0867b2","version":3}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"address":"ac7ecbf5a908d5bbb8185637f8e5475230f7fc98","blspublickey":"a58b8aabf24dc7f5d5589ae5043e5519c121986d6645789ea4985d0ddac408ae9a3d1f905647053066fc4959436f9a01cb4c5f3618694206e5ef1dd956249e6c2d8cc7acf2aebe37375fc694e0d8d5b253cb7416c4da4e4e851b40631a538c81","crypto":{"cipher":"aes-128-ctr","ciphertext":"c54dd02d46cc9de3006397540e629d456d0beeb3a0c7432f33ad7bcbd397b1c0","cipherparams":{"iv":"70f518b531538131c03fd8f9b0165752"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"1204576b048aef2493bb9ac6e491826d446d74ac4f422272495de3398a82efc1"},"mac":"51953920976b973ab26f43b5cebab82c78ab48b197c86e58af9ada644d6db65b"},"id":"8a51bb80-26dd-4098-8159-1157646a036b","version":3}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"address":"221df07ac9806020e4ff2ad2003e5f5d64bbaaa4","blspublickey":"9872250ff23f712414e0978993d8f25a8a370fbe7577d538f5f931d8120c5a785ca6b9170bff1916848b1f686a3f7b01972fb92d3f1fd34efe72611d101cb1510e035521b586b3a91e9f553913c1de6dddb21164851c9581b13b57466f292780","crypto":{"cipher":"aes-128-ctr","ciphertext":"c740e938f956e35400b7c53cfc08565187afcdd48b2d820c31e78e45bf86bfe0","cipherparams":{"iv":"26552fb23a1376a0fb516805ad0dd091"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"d66def803968039a05f001458017634990013b09fdda4f661a7e8be461f01a46"},"mac":"f573adff5047f2a101bec74d1781984209b2a7969a91157007d0cb529832372c"},"id":"1a4e3825-5f65-4a0b-92b0-cbc2822b7ced","version":3}
1 change: 1 addition & 0 deletions infrastructure/docker/celo/celo-init/password.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
password
16 changes: 16 additions & 0 deletions infrastructure/docker/celo/start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/sh

mkdir -p $CELO_DATA_DIR/keystore
cp $CELO_INIT_DIR/keystore/* $CELO_DATA_DIR/keystore
cp $CELO_INIT_DIR/password.txt $CELO_DATA_DIR/password.txt
[ ! -d "$CELO_DATA_DIR/celo" ] && geth --nousb --datadir=$CELO_DATA_DIR init $CELO_INIT_DIR/genesis.json

geth --port 3000 --networkid 1101 --identity "somerandomidentity" \
--ws --wsaddr "0.0.0.0" --wsport $CELO_WS_PORT --wsorigins "*" \
--rpc --rpcport $CELO_RPC_PORT --rpcaddr "0.0.0.0" --rpccorsdomain "" \
--rpcapi "db,ssh,miner,admin,eth,net,web3,personal" \
--wsapi "db,ssh,miner,admin,eth,net,web3,personal" \
--datadir $CELO_DATA_DIR --syncmode "fast" \
--mine --miner.threads 1 --nousb \
--unlock 0x2b2976824682233807a197081119da511af12f7a --password $CELO_DATA_DIR/password.txt \
--allow-insecure-unlock

0 comments on commit b1612f1

Please sign in to comment.