Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
197 commits
Select commit Hold shift + click to select a range
f5cdbe3
fix(libp2p): select proper stream for response
akoptelov Apr 29, 2024
2ea4092
task(p2p-tests): implement RPC tests
akoptelov Apr 26, 2024
31356aa
Merge pull request #374 from openmina/task/test-p2p-rpc
akoptelov May 1, 2024
be61eb1
Changed order of dispatched commands
0xMimir Apr 24, 2024
05e4c45
Added discovery in node config for kademlia tests
0xMimir May 1, 2024
10c9bf8
Merge pull request #367 from 0xMimir/bugfix/#361
tizoc May 1, 2024
ebc99dd
fix(transition-frontier): Fix order of successful snarked ledger sync…
tizoc May 6, 2024
6e56d8a
Merge pull request #384 from openmina/fix/transition-frontier-flow
tizoc May 6, 2024
52b5515
fix(ledger-service) Use `supercharge_coinbase` value from the block
tizoc May 7, 2024
a409a69
Update CHANGELOG
tizoc May 7, 2024
3cae110
Merge pull request #387 from openmina/fix/block-verify-supercharge-co…
tizoc May 7, 2024
acce09c
fix(p2p/webrtc): outgoing connection not being initiated
binier Apr 30, 2024
dfb954d
fix(consensus): incorrect handling of case when tip height <= k
binier Apr 30, 2024
49fbdb6
fix(block_producer): invalid delta_block_chain_proof
binier May 8, 2024
50f1fec
Merge pull request #388 from openmina/test/transition_frontier
binier May 8, 2024
96b15ce
Add a parser for OCaml node's configuration files.
Sventimir May 9, 2024
a990037
Fix bug in currency parsing.
Sventimir May 9, 2024
dde485c
Add DaemonJson variant to GenesisConfig enum.
Sventimir May 9, 2024
e423a19
Add an option to start a node using custom config.
Sventimir May 9, 2024
07e64e3
Merge pull request #369 from openmina/feature/load-config-file
Sventimir May 9, 2024
6014623
fix(node): Fix parsing of genesis timestamp, must be in milliseconds
tizoc May 9, 2024
862138a
Merge pull request #389 from openmina/fix/config-genesis-timestamp-pa…
tizoc May 9, 2024
52ebb75
fix(node): Fix zero value for the empty coinbase stack data hash
tizoc May 9, 2024
37a1709
Merge pull request #390 from openmina/fix/coinbase-stack-data-zero
tizoc May 9, 2024
84ed97a
tweak: Rename `zero` methods to `empty` which better describes what t…
tizoc May 9, 2024
3b16121
Merge pull request #391 from openmina/tweak/zero-to-empty
tizoc May 10, 2024
5f915d1
Replace bincode serialization for cbor
Apr 27, 2024
4ca447b
testing: replace getrandom calls in CryptoService
Apr 30, 2024
061c1c5
replay: fix invariant checks
May 2, 2024
655635d
fix(replayer): non-determinism because of race condition caused by as…
binier May 14, 2024
91c2cd4
Merge pull request #398 from openmina/feat/record_cbor
binier May 14, 2024
48cde1a
feat(p2p-testing): basic impl for libp2p nodes
akoptelov Apr 30, 2024
cc772f6
task(p2p-testing): rust events improvements
akoptelov May 2, 2024
49295f9
task(p2p-testing): panic on error tracing event
akoptelov May 2, 2024
0631e0e
task(p2p-testing): implement shared ports storage
akoptelov May 2, 2024
81bea71
task(p2p-testing): better support for libp2p nodes
akoptelov May 3, 2024
17e0bc7
task(p2p-testing): mutual connection handling test
akoptelov May 3, 2024
2f2748c
feat(kademlia): update routing table on identify
akoptelov May 3, 2024
9f5fea1
fix(kademlia): fix state in kad stream reducer
akoptelov May 3, 2024
be9ae3f
fix(kademlia): bootstrap only when there are peers
akoptelov May 6, 2024
42d4cde
fix(p2p): handle mutual connection case
akoptelov May 9, 2024
b6ca4c0
task(p2p-testing): multiple imprs for p2p cluster
akoptelov May 14, 2024
5fb4fb6
task(p2p-testing): more connection tests
akoptelov May 14, 2024
a01bcb3
fix(kademlia): better stream numbering
akoptelov May 14, 2024
e0f228a
task(p2p-testing): add tests for kademlia
akoptelov May 14, 2024
b4f64eb
task(p2p): fix scenario p2p tests
akoptelov May 14, 2024
c3aa87e
chores(ci): fix clippy warns
akoptelov May 14, 2024
8bfb1ad
Merge pull request #401 from openmina/task/kademlia-identify
akoptelov May 15, 2024
ff25175
fix(ledger): propagate verifier index serde errors (#404)
akoptelov May 15, 2024
1b67013
fix(p2p): sort out chain_id constant
akoptelov Feb 20, 2024
aa7dc49
WIP: Identify implementation
Mar 13, 2024
e6044ee
feat(pubsub): add config for deploy ocaml node with debugger
vlad9486 Apr 17, 2024
e117e9e
feat(pubsub): add pubsub skeleton: state, actions, reducer, effecrts;…
vlad9486 Apr 17, 2024
6f00e5c
feat(pubsub): implement minimal broadcast
vlad9486 Apr 17, 2024
6631930
feat(pubsub): fix multistream-select bug, impleemnt basic pubsub machine
vlad9486 Apr 18, 2024
4b93ca8
fix(minor)
vlad9486 May 16, 2024
3f0688d
feat(pubsub): add gossipsub sandbox
vlad9486 Apr 25, 2024
7f3369e
fix(identify): fixed encoding of the message
vlad9486 Apr 29, 2024
03a546d
fix(pubsub): call graft
vlad9486 Apr 29, 2024
0d1bab1
fix(identify): minor
vlad9486 Apr 30, 2024
0f1ff18
fix(pubsub): send outgoing messages to outgoing stream
vlad9486 Apr 30, 2024
65f7fbe
feat(pubsub): implement signing and broadcast
vlad9486 May 1, 2024
b22a9fd
feat(pubsub): skip recently seen message
vlad9486 May 1, 2024
b9a48fa
feat(pubsub): impl encoding
vlad9486 May 1, 2024
93ba2e4
feat(pubsub): make pubsub action work from other crates
vlad9486 May 2, 2024
98e152e
fix(pubsub): message binprot encoding
vlad9486 May 2, 2024
89ce7d2
fix(pubsub): collect fragmqnted message
vlad9486 May 3, 2024
b4b6181
feat(pubsub): send new best tip to transition frontier
vlad9486 May 3, 2024
4103be1
feat(pubsub): send new snark work deeper in state machine
vlad9486 May 3, 2024
78cbf13
feat(p2p/libp2p): integrate pubsub with the rest of the system
binier May 5, 2024
1ab36e5
feat(pubsub): retransmit test
vlad9486 May 7, 2024
20862e7
feat(pubsub): workout skeleton more, handle incoming stream
vlad9486 Apr 17, 2024
69ffda7
fix(producer): skip VRF evaluation on genesis when the current slot i…
May 9, 2024
8cb4499
fix(block_producer): producing same slot twice
binier May 10, 2024
4bbf231
fix(p2p/tests)
vlad9486 May 13, 2024
77acf2f
feat(pubsub): add scenario test wrapper
vlad9486 May 15, 2024
254dff9
fix(vrf_evaluator): correct berkeley genesis timestamp + interrupt ev…
May 15, 2024
7185968
feat(p2p/pubsub): increase stack for test thread
vlad9486 May 15, 2024
67b05a8
fix(ci,doc): add protobuf-compiler in deps list, fix stack size
vlad9486 May 16, 2024
d8bc589
Merge pull request #410 from openmina/feat/pubsub-mc2-rebase2
vlad9486 May 16, 2024
87504e5
chore(fmt): Format code
tizoc May 16, 2024
eb620bf
chore(ci): Add protoc dependency to linter
tizoc May 16, 2024
fea6261
Merge pull request #411 from openmina/chore/fmt
tizoc May 16, 2024
56e715c
task(testing): enable tests that need discovery (#407)
akoptelov May 16, 2024
d600b9e
feat(p2p/tests): make OCaml node config lazy
vlad9486 May 20, 2024
cc556c4
feat(p2p/tests): add pubsub test
vlad9486 May 20, 2024
d88f3d6
Merge pull request #415 from openmina/feat/p2p-tests
vlad9486 May 20, 2024
e1825d4
fix(p2p/select): fix multiple issues in select protocol
May 20, 2024
5ce6bfb
fix(p2p/select): add timeouts to protocol select
May 21, 2024
8f63878
fix(testing): fix testing framework a little bit
vlad9486 May 21, 2024
ad541a2
chore(node): Replace serde_cbor with ciborium
tizoc May 23, 2024
9abe864
Merge pull request #423 from openmina/chore/use-cborium
tizoc May 23, 2024
edcf9b7
task(tests): ensure node is bootstrapped
akoptelov May 23, 2024
639abba
fix(kademlia): don't identify disabled discovery
akoptelov May 23, 2024
bae9c1b
Merge pull request #422 from openmina/task/bootstrap-test-improvement
akoptelov May 24, 2024
b12127b
fix(p2p/select): fix multiple issues in select protocol
May 20, 2024
8f41bb7
fix(p2p/select): add timeouts to protocol select
May 21, 2024
17d1d42
fix(testing): fix testing framework a little bit
vlad9486 May 21, 2024
b3a75d7
feat(p2p/security): limit number of bytes to receive during handshake
vlad9486 May 24, 2024
2cf0e73
docs(status): Update with devnet info, etc
tizoc May 24, 2024
3d91d62
Merge pull request #426 from openmina/docs/update-status
tizoc May 24, 2024
bd8eea2
Update status.md
dkuehr May 24, 2024
61dfadb
feat(status): update p2p related status
vlad9486 May 24, 2024
85f13d8
Merge pull request #427 from openmina/feat/p2p/limit
vlad9486 May 24, 2024
0541d13
fix(p2p-messages): Get rid of v1 messages
tizoc May 23, 2024
01dcb00
Merge branch 'select_fixes' of github.com:openmina/openmina into sele…
May 24, 2024
189e9e9
fix(encodings): Don't use Vec or String in binprot encoded values
tizoc May 23, 2024
fd30937
fix(encodings): Process big strings in chunks
tizoc May 24, 2024
580a9a8
Merge pull request #424 from openmina/fix/binprot-limits
tizoc May 24, 2024
49f2b6e
Increase select timeout to 5 secs
May 24, 2024
7db6ebe
Merge pull request #416 from openmina/select_fixes
dkuehr May 24, 2024
af6267f
feat(p2p/security): limit number of connections
vlad9486 May 27, 2024
05072f5
refactor(testing): move cluster_runner inside cluster module
binier May 20, 2024
7321495
refactor(testing): move cluster runner run logic to a separate module
binier May 20, 2024
38014c2
feat(testing): add option to runner to advance time using real time
binier May 21, 2024
8183de2
Merge pull request #430 from openmina/test/block_producer
binier May 27, 2024
dc2b311
Make ChainId type to distinguish it from other strings.
Sventimir May 10, 2024
989ec21
Switch to milisecond timestamp precision.
Sventimir May 17, 2024
5c4e6af
task(p2p): make p2p start on demand
akoptelov May 21, 2024
211a8c3
fix(kademlia): repeat bootstrap if none discovered
akoptelov May 27, 2024
df03eb6
Merge pull request #420 from openmina/task/p2p-on-demand
akoptelov May 28, 2024
d2a531e
Block production won slots - phase 1
directcuteo May 2, 2024
f9c87dc
Frontend - Block production won slots - phase 1 #435
directcuteo May 28, 2024
fd2fdb5
Won slots fixes
directcuteo May 28, 2024
1b1c3d8
Frontend - Won slots fixes #436
directcuteo May 28, 2024
a596d68
Clippy fixes
0xMimir May 27, 2024
d3b7aaf
Clippy fixes in ledger/
0xMimir May 27, 2024
0b29d37
fix: Update rustls dependency
tizoc May 28, 2024
f768dde
Merge pull request #440 from openmina/fix/update-rustls
tizoc May 28, 2024
0ea2c97
Review fixes
0xMimir May 29, 2024
8ff5e73
Updated lint.yml to not allow clippy warnings
0xMimir May 29, 2024
3c1d690
Merge pull request #429 from openmina/feat/status-vlad
vlad9486 May 30, 2024
9534279
Merge pull request #432 from openmina/feat/p2p/limit
vlad9486 May 30, 2024
a67c5f6
Merge pull request #434 from 0xMimir/feat/clippy-fixes
0xMimir May 30, 2024
ad5c827
p2p: better handling for select errors and timeouts
May 30, 2024
6ba275a
fix(docker): install protobuf compiler
akoptelov May 30, 2024
86042e8
task(docker): add arm64 platform
akoptelov May 30, 2024
2c5bf6a
Merge pull request #443 from openmina/fix/docker-build-protobuf
akoptelov May 30, 2024
7946ca2
task(config): fix default ledger configuration (#438)
akoptelov May 30, 2024
3e1f10a
fix(p2p/noise): recursion on incoming chunk
vlad9486 May 31, 2024
e489efb
Merge pull request #447 from openmina/fix/p2p/noise
vlad9486 May 31, 2024
70439c3
p2p: fix stack overflow (remove recursion) when processing incoming y…
May 30, 2024
3f83775
Merge pull request #446 from openmina/p2p_fixes
dkuehr May 31, 2024
6e65136
Block production won slots
directcuteo May 29, 2024
a55df7d
Frontend - Block production Won Slots #450
directcuteo May 31, 2024
880c048
feat: WIP producer dashboard BE (ledger loading, graphql)
Apr 10, 2024
6dc906c
WIP: warp server, simple storage, genesis_timestamp, epoch data
Apr 10, 2024
dfa68d7
WIP: add evaluator + path for latest epoch
Apr 11, 2024
8267a12
WIP: add archive block fetching
Apr 12, 2024
3a42a90
WIP: node watchdog, sled DB
Apr 15, 2024
310ef60
WIP: archive watchdog, slot storing and updating
Apr 16, 2024
23b83c3
WIP: add dockerfile + sqlx offline mode
Apr 16, 2024
8f968d6
chore: cargo fmt
Apr 16, 2024
37c9718
WIP: compose setup, config adjustments
Apr 16, 2024
9eaf40a
WIP: install mina executable into the image
Apr 16, 2024
fc97145
WIP: running setup, bare endpoints, TODO
Apr 17, 2024
f8973b3
WIP: correct API endpoints
Apr 19, 2024
61a59cb
WIP: Summary pagination
Apr 22, 2024
b09497e
fix: Correct slot statuses
Apr 23, 2024
7d6df2e
chore: cleanup unuses and commented code
Apr 23, 2024
7bcc788
fix: rewards in nano mina + all time summary
Apr 24, 2024
0573e00
fix: fix dumping in compose
Apr 24, 2024
6a524c8
fix: incorporate FE requests + correct balance sum
May 1, 2024
2573b1d
feat(stats/block_producer): gather stats
binier May 24, 2024
ef78367
feat(http_server): add rpc for fetching block producer stats
binier May 27, 2024
735a8a1
feat(stats/block_producer): include future won slots in the rpc
binier May 27, 2024
6364a02
feat(testing): add forever running real time simulation
binier May 27, 2024
7db6b3d
fix(stats/block_producer): bad discarded reason formatting
binier May 28, 2024
1afa94b
feat(stats/block_producer): add current time/slot and committed date
binier May 28, 2024
db24c90
fix(block_producer): not searching next won slot after syncing to pro…
binier May 28, 2024
1bc93e1
feat(stats/block_producer): determine if block is canonical or orphaned
binier May 28, 2024
e383b4b
feat(rpc): add status rpc
binier May 31, 2024
0551277
feat(stats/block_producer): add epoch start and end global slots
binier May 31, 2024
3473590
chore(clippy): fix
binier May 31, 2024
e3affe5
fix(testing): recorder not recording initial state
binier May 31, 2024
7ac07ae
Merge pull request #428 from openmina/dkuehr-patch-1
tizoc May 31, 2024
c978403
Merge pull request #445 from openmina/feat/producer-dashboard-BE
tizoc May 31, 2024
c476bb6
feat(docker): include the testing framework scenarios in the image
May 31, 2024
ae590f9
chore: Update readme + producer demo readme
May 31, 2024
ce027f9
feat: Producer demo compose
May 31, 2024
ad78aa2
fix(docs): no sudo needed
May 31, 2024
617a60e
build images on hosts
May 31, 2024
65bf9f5
chore: add --build option to compose
May 31, 2024
8766c8f
docs(producer-demo): Add short description
May 31, 2024
ea210d1
docs(producer-demo): Remove branch from clone (will work after release)
May 31, 2024
ef07b83
Merge pull request #451 from openmina/chore/guide-producer-demo
tizoc May 31, 2024
03d65cc
task(p2p): introduce limits for kademlia messages
akoptelov May 29, 2024
267372e
task(p2p): report limit violation for identify
akoptelov May 30, 2024
4cb86c0
task(p2p): fix connections limit
akoptelov May 30, 2024
a26f46f
task(p2p): add limits for RPCs
akoptelov May 30, 2024
4252774
task(p2p): refactor p2p-layer errors
akoptelov May 31, 2024
51054ca
Merge pull request #442 from openmina/task/limits-in-p2p
tizoc May 31, 2024
d681da8
chore: Update CHANGELOG
tizoc May 31, 2024
128974b
chore: Bump version to 0.5.0
tizoc May 31, 2024
53170b1
chore: Update Cargo.lock
tizoc May 31, 2024
9d5a49e
Use prebuilt node image in producer demo
tizoc May 31, 2024
4b4942a
Merge pull request #452 from openmina/prepare-release/v0.5.0
tizoc May 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
50 changes: 44 additions & 6 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,18 +55,16 @@ steps:
- name: build
image: rust:1.77-bullseye
commands:
- apt-get update && apt-get install -y libssl-dev libjemalloc-dev jq
- apt-get update && apt-get install -y libssl-dev libjemalloc-dev jq protobuf-compiler
- rustup update 1.77 && rustup default 1.77
- rustup component add rustfmt
# just to be sure it builds without errors
- cargo build
- cargo build --release --features p2p-libp2p --bin openmina
- cargo build --release --bin openmina
# unit tests
- cargo test --features p2p-libp2p --release -p cli
- cargo test --release -p cli
# build tester binaries
- cargo build --release --features scenario-generators --no-default-features -p openmina-node-testing && mv target/release/openmina-node-testing target/release/openmina-node-testing-mio
- cargo build --release --features scenario-generators,p2p-libp2p -p openmina-node-testing && mv target/release/openmina-node-testing target/release/openmina-node-testing-libp2p
- cargo build --release --features scenario-generators,p2p-libp2p,p2p-webrtc -p openmina-node-testing && mv target/release/openmina-node-testing target/release/openmina-node-testing-webrtc
- cargo build --release --features scenario-generators -p openmina-node-testing && mv target/release/openmina-node-testing target/release/openmina-node-testing-mio
- cargo build --release --bin runner

# o sole mio :)
Expand Down Expand Up @@ -333,6 +331,41 @@ steps:
depends_on:
- prepare

- name: block-production-overview-epoch-graphs
image: cypress/included:13.3.2
commands:
- cd frontend && cypress run --config-file "cypress.config.js" --spec "cypress/e2e/block-production/overview/epoch-graphs.cy.ts"
depends_on:
- prepare

- name: block-production-overview-slots
image: cypress/included:13.3.2
commands:
- cd frontend && cypress run --config-file "cypress.config.js" --spec "cypress/e2e/block-production/overview/slots.cy.ts"
depends_on:
- prepare

- name: block-production-overview-side-panel
image: cypress/included:13.3.2
commands:
- cd frontend && cypress run --config-file "cypress.config.js" --spec "cypress/e2e/block-production/overview/side-panel.cy.ts"
depends_on:
- prepare

- name: block-production-overview-toolbar
image: cypress/included:13.3.2
commands:
- cd frontend && cypress run --config-file "cypress.config.js" --spec "cypress/e2e/block-production/overview/toolbar.cy.ts"
depends_on:
- prepare

- name: block-production-overview-apis
image: cypress/included:13.3.2
commands:
- cd frontend && cypress run --config-file "cypress.config.js" --spec "cypress/e2e/block-production/overview/apis.cy.ts"
depends_on:
- prepare

- name: nodes-overview-table
image: cypress/included:13.3.2
commands:
Expand Down Expand Up @@ -460,6 +493,11 @@ steps:
from_secret: docker_hub_password
depends_on:
- dashboard-peers
- block-production-overview-epoch-graphs
- block-production-overview-slots
- block-production-overview-side-panel
- block-production-overview-toolbar
- block-production-overview-apis
- nodes-overview-table
- nodes-overview-side-panel
- nodes-live-blocks-map
Expand Down
120 changes: 95 additions & 25 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
RUST_MIN_STACK: 10000000

jobs:
ledger-tests:
runs-on: ubuntu-20.04
Expand All @@ -17,6 +20,10 @@ jobs:
steps:
- name: Git checkout
uses: actions/checkout@v4
- name: Setup build dependencies
run: |
sudo apt update
sudo apt install -y protobuf-compiler
- name: Setup Rust
run: |
# Nightly to be able to use `--report-time` below
Expand All @@ -41,6 +48,11 @@ jobs:
- name: Git checkout
uses: actions/checkout@v4

- name: Setup build dependencies
run: |
sudo apt update
sudo apt install -y protobuf-compiler

- name: Setup Rust
run: |
rustup default 1.77
Expand All @@ -62,6 +74,11 @@ jobs:
- name: Git checkout
uses: actions/checkout@v4

- name: Setup build dependencies
run: |
sudo apt update
sudo apt install -y protobuf-compiler

- name: Setup Rust
run: |
rustup default 1.77
Expand All @@ -88,6 +105,11 @@ jobs:
- name: Git checkout
uses: actions/checkout@v4

- name: Setup build dependencies
run: |
sudo apt update
sudo apt install -y protobuf-compiler

- name: Setup Rust
run: |
rustup default 1.77
Expand Down Expand Up @@ -115,10 +137,16 @@ jobs:

build-tests-webrtc:
runs-on: ubuntu-20.04
if: false
steps:
- name: Git checkout
uses: actions/checkout@v4

- name: Setup build dependencies
run: |
sudo apt update
sudo apt install -y protobuf-compiler

- name: Setup Rust
run: |
rustup default 1.77
Expand Down Expand Up @@ -151,7 +179,7 @@ jobs:
image: minaprotocol/mina-daemon:2.0.0berkeley-rc1-1551e2f-focal-berkeley
strategy:
matrix:
test: [p2p_basic_connections, p2p_basic_incoming, p2p_basic_outgoing]
test: [p2p_basic_connections, p2p_basic_incoming, p2p_basic_outgoing, p2p_pubsub]
fail-fast: false

steps:
Expand All @@ -168,19 +196,51 @@ jobs:
run: |
./${{ matrix.test }} --test-threads=1

k8s-peers:
runs-on: ubuntu-20.04
# TODO: query cluster for actual addresses, or specify then on deployment
env:
PEERS: |
/ip4/135.181.217.23/tcp/31881/p2p/12D3KooWKiKQkUTTZ6u8HDk471ZQE2vStpEDnySiKDrYgZGfEcsF
/ip4/135.181.217.23/tcp/30386/p2p/12D3KooWBHknA3ty2tk4u3N6Rwnjs5YwYaxHT9dURf7zGeBJ4VJG
/ip4/135.181.217.23/tcp/32272/p2p/12D3KooWDZDH6ucaZY4bU2R8Xy9T1iy4PGtaZ8vEWeuGEeLaQEg5
/ip4/135.181.217.23/tcp/32218/p2p/12D3KooWMenq7gPcF7utkZao8WLtjMqsZkY7LeLD1Y9q9YyQZnkG
/ip4/135.181.217.23/tcp/30798/p2p/12D3KooWMMsF7dYbn4Szf7TvrRofuK53W3zj6TDKgxAFSWYypLsB
/ip4/135.181.217.23/tcp/31631/p2p/12D3KooWNeaaS6wpPSa41qkxQWaeauDR51WCNnLUyd5CcjBBiNTq
/ip4/135.181.217.23/tcp/30196/p2p/12D3KooWCBTaSVMxDT1SUoeSg3PUsVL1Df1hDxkSvN544i7tsE76
/ip4/135.181.217.23/tcp/30790/p2p/12D3KooWG7egucvX5sompG2euhaPL4QQ3BdHJrLS7HGWyiHyoD5y
/ip4/135.181.217.23/tcp/30070/p2p/12D3KooWFG5dhmgS6rb8NdoNbiK7Vf6TqTQDTYxq18DVkmPwsgfg
outputs:
peers: ${{ steps.peers.outputs.peers }}
steps:
- id: peers
name: Fetch k8s OCaml peers
run: |
{
echo 'peers<<EOF'
echo $PEERS
echo EOF
} >> "$GITHUB_OUTPUT"

scenario-tests:
if: false
needs: [ build-tests, build-tests-webrtc ]
needs:
- k8s-peers
- build-tests
# - build-tests-webrtc
runs-on: ubuntu-20.04
container:
image: minaprotocol/mina-daemon:2.0.0berkeley-rc1-1551e2f-focal-berkeley
env:
# to allow local addrs discovery
OPENMINA_DISCOVERY_FILTER_ADDR: false
OPENMINA_SCENARIO_SEEDS: ${{ needs.k8s-peers.outputs.peers }}
strategy:
matrix:
test:
- single_node
- multi_node
- webrtc_single_node
- webrtc_multi_node
# - webrtc_single_node
# - webrtc_multi_node
# - connection_discovery
fail-fast: false

Expand All @@ -201,41 +261,51 @@ jobs:


bootstrap-test:
needs: [ build ]
needs: [ k8s-peers, build ]
runs-on: ubuntu-20.04
env:
PEERS: ${{ needs.k8s-peers.outputs.peers }}
steps:
- name: Download binary
uses: actions/download-artifact@v4
with:
name: bin

- name: Prepare peers list
run: |
cat > peers.txt <<EOF
/ip4/135.181.217.23/tcp/31881/p2p/12D3KooWL7TyJx6TZZVKqPKkjNXXovu4y7aRQaWEx3eaiY45Lqw8
/ip4/135.181.217.23/tcp/30386/p2p/12D3KooWQywRHUxh4bjvPSDKbrY8GeUzeGgHxKbesrJYpgqvaicS
/ip4/135.181.217.23/tcp/32272/p2p/12D3KooWA4Mcr2Kn6ivtqFxWcFdLxGW2gqdDVwS86kToUCYst2rj
/ip4/135.181.217.23/tcp/32218/p2p/12D3KooWKWRfqG8QdkpAVY3xUzxndPBgj5WR6fxBNAJKSzek3URZ
/ip4/135.181.217.23/tcp/30798/p2p/12D3KooWJXiYRpj1dCLPv2PMLyNTuWSgzavyKXyaVsmBRhnBVCNM
/ip4/135.181.217.23/tcp/31631/p2p/12D3KooWNeaaS6wpPSa41qkxQWaeauDR51WCNnLUyd5CcjBBiNTq
/ip4/135.181.217.23/tcp/30196/p2p/12D3KooWDdJEVxdrthmuBiEL2Yi6nnryo4UYxz1f98TiykyFBx7H
/ip4/135.181.217.23/tcp/30790/p2p/12D3KooWN8wmWdivGuUG7fTkV34hihgC6RnrfygzbZCuaQceaiak
/ip4/135.181.217.23/tcp/30070/p2p/12D3KooWNi6nauXV3bMtwkc3wqA7V79Um92muVJ5pKvC11wVo2xk
EOF
echo "::group::Peers for bottstrapping"
cat peers.txt
echo "::endgroup::"

- name: Bootstrap node
run: |
set -eu
chmod +x ./openmina
./openmina node --no-peers-discovery --peers $(cat peers.txt) |& tee run.log &
./openmina node --no-peers-discovery --peers $PEERS 2>&1 | tee run.log &
PID=$!
TIME=10
SLEEP=10
ATTEMPTS=$((TIME * 60 / SLEEP))
while ! curl -fs localhost:3000/readyz; do

healthy() {
curl -fs -m 5 localhost:3000/healthz
}

ready() {
curl -fs -m 5 localhost:3000/readyz
}

ready3() {
ready && sleep 10 && ready && sleep 10 && ready
}

while ! healthy; do
echo "::notice::The node is not healthy yet"
ATTEMPTS=$((ATTEMPTS-1))
if [ "${ATTEMPTS}" -eq 0 ]; then
echo "::error::Cannot bootsrtap within $TIME minutes"
exit 1
fi
sleep $SLEEP
done
echo "::notice::The node is healthy"

while ! ready3; do
echo "::notice::The node is not bootstrapped yet"
ATTEMPTS=$((ATTEMPTS-1))
if [ "${ATTEMPTS}" -eq 0 ]; then
echo "::error::Cannot bootsrtap within $TIME minutes"
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ jobs:
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
cache-from: type=gha
Expand Down
13 changes: 12 additions & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup build dependencies
run: |
sudo apt update
sudo apt install -y protobuf-compiler
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.77
Expand All @@ -21,8 +25,15 @@ jobs:
with:
command: fmt
args: --all -- --check
- uses: actions-rs/cargo@v1
name: check
with:
command: check
args: --all-targets
env:
RUSTFLAGS: -D warnings
- uses: actions-rs/clippy-check@v1
name: clippy
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-targets -- -A clippy::too_many_arguments -A clippy::doc_markdown
args: --all-targets -- -D warnings
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.5.0] - 2024-05-31

### Fixed

- When applying blocks, use the `supercharge_coinbase` value from the block which was being ignored before.
- Incorrect stream being used for RPC responses.
- Allow multiple nodes running on the same host to connect to each other.
- Invalid `delta_block_chain_proof` in block producer.
- Various p2p layer fixes.

### Added

- Support for PubSub in the p2p layer.
- Block producer dashboard, and simulator-based demo.
- Support for parsing `daemon.json` files with custom genesis ledgers.
- Chain ID computation (was hardcoded before).
- Multiple RPC and p2p tests.
- More limits to p2p messages, connections, and parsing.

### Removed

- Support for v1 messages in p2p layer.

## [0.4.0] - 2024-04-30

### Fixed
Expand Down
Loading