Skip to content

Commit 36f7627

Browse files
authored
Merge pull request #969 from openmina/develop
Merge `develop` into `main`
2 parents d1dd9f9 + 2338fe6 commit 36f7627

File tree

550 files changed

+23109
-13295
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

550 files changed

+23109
-13295
lines changed

.drone.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ steps:
5353
- cp /usr/local/bin/mina cli/bin/
5454

5555
- name: build
56-
image: rust:1.80-bullseye
56+
image: rust:1.83-bullseye
5757
commands:
5858
- apt-get update && apt-get install -y libssl-dev libjemalloc-dev jq protobuf-compiler
59-
- rustup update 1.80 && rustup default 1.80
59+
- rustup update 1.83 && rustup default 1.83
6060
- rustup component add rustfmt
6161
# just to be sure it builds without errors
6262
- cargo build

.github/workflows/ci.yaml

Lines changed: 94 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,81 @@ jobs:
4343
cd ledger
4444
cargo test --release -- -Z unstable-options --report-time
4545
46+
ledger-32x9-tests:
47+
runs-on: ubuntu-20.04
48+
steps:
49+
- name: Git checkout
50+
uses: actions/checkout@v4
51+
- name: Setup build dependencies
52+
run: |
53+
sudo apt update
54+
sudo apt install -y protobuf-compiler
55+
- name: Setup Rust
56+
run: |
57+
# Nightly to be able to use `--report-time` below
58+
rustup install nightly
59+
rustup override set nightly
60+
- name: Download circuits files
61+
run: |
62+
git clone --depth 1 https://github.com/openmina/circuit-blobs.git
63+
ln -s -b $PWD/circuit-blobs/* ledger/
64+
- name: Enable 32x9 fields implementation
65+
run: |
66+
cargo install sd
67+
sd '^mina-curves.*$' '' ./Cargo.toml
68+
sd '^ark-ff = \{ version .*$' '' ./Cargo.toml
69+
sd -F '# UNCOMMENTED_IN_CI ' '' ./Cargo.toml
70+
cat ./Cargo.toml
71+
- name: Build ledger tests
72+
run: |
73+
cd ledger
74+
cargo build --release --tests
75+
- name: Run ledger tests
76+
run: |
77+
cd ledger
78+
cargo test --release -- -Z unstable-options --report-time
79+
80+
vrf-tests:
81+
runs-on: ubuntu-20.04
82+
steps:
83+
- name: Git checkout
84+
uses: actions/checkout@v4
85+
- name: Setup build dependencies
86+
run: |
87+
sudo apt update
88+
sudo apt install -y protobuf-compiler
89+
- name: Setup Rust
90+
run: |
91+
# Nightly to be able to use `--report-time` below
92+
rustup install nightly
93+
rustup override set nightly
94+
- name: Build vrf tests
95+
run: |
96+
cd vrf
97+
cargo build --release --tests
98+
- name: Run vrf tests
99+
run: |
100+
cd vrf
101+
cargo test --release -- -Z unstable-options --report-time
102+
103+
tx-fuzzer-check:
104+
runs-on: ubuntu-20.04
105+
steps:
106+
- name: Git checkout
107+
uses: actions/checkout@v4
108+
- name: Setup build dependencies
109+
run: |
110+
sudo apt update
111+
sudo apt install -y protobuf-compiler
112+
- name: Setup Rust
113+
run: |
114+
rustup install nightly
115+
rustup override set nightly
116+
- name: Check for compilation errors in transaction fuzzer
117+
run: |
118+
cd tools/fuzzing
119+
cargo check
120+
46121
p2p-tests:
47122
runs-on: ubuntu-20.04
48123
steps:
@@ -56,7 +131,7 @@ jobs:
56131
57132
- name: Setup Rust
58133
run: |
59-
rustup default 1.80
134+
rustup default 1.83
60135
rustup component add rustfmt
61136
62137
- name: Setup Rust Cache
@@ -82,7 +157,7 @@ jobs:
82157
83158
- name: Setup Rust
84159
run: |
85-
rustup default 1.80
160+
rustup default 1.83
86161
rustup component add rustfmt
87162
88163
- name: Setup Rust Cache
@@ -142,7 +217,7 @@ jobs:
142217
143218
- name: Setup Rust
144219
run: |
145-
rustup default 1.80
220+
rustup default 1.83
146221
rustup component add rustfmt
147222
148223
- name: Setup Rust Cache
@@ -178,7 +253,7 @@ jobs:
178253
179254
- name: Setup Rust
180255
run: |
181-
rustup default 1.80
256+
rustup default 1.83
182257
rustup component add rustfmt
183258
184259
- name: Setup Rust Cache
@@ -259,15 +334,15 @@ jobs:
259334
# TODO: query cluster for actual addresses, or specify then on deployment
260335
env:
261336
PEERS: |
262-
/ip4/135.181.217.23/tcp/31881/p2p/12D3KooWS4TMSjrAS4Cj31PgjZ9KgeHh5goLP65M5GSriF28d7Jx
263-
/ip4/135.181.217.23/tcp/30386/p2p/12D3KooWK92cYz26JqBE9vM9s9Jd9pJKcNxLd7VVRupU7YG5NupU
264-
/ip4/135.181.217.23/tcp/32272/p2p/12D3KooWSU1DYZYVA7wAYLvLsH6yVS8oV1sMJUcC7VtUxCgtsWkJ
265-
/ip4/135.181.217.23/tcp/32218/p2p/12D3KooWM5m9QqHpDkPJi54GPP6rGFpzo7E274husrModPSLQ7tn
266-
/ip4/135.181.217.23/tcp/30798/p2p/12D3KooWCk2QSmQH2XbtpDXiSPUq6wb2LB2JaExHRXkJggmEfN4J
267-
/ip4/135.181.217.23/tcp/31631/p2p/12D3KooWQ1642Dzm57Kr8tmTwS9NRFaJPy4ysaQ2ne3ZYwQn5qCk
268-
/ip4/135.181.217.23/tcp/30196/p2p/12D3KooWHK67syE2LeTz5EnNqCe5ZFf9SoZRFN4AdHVZsL31WkMn
269-
/ip4/135.181.217.23/tcp/30790/p2p/12D3KooWDwxrG5u12FzXAFyK7vd8aHnEQf4dwoboBJ72FUS179xK
270-
/ip4/135.181.217.23/tcp/30070/p2p/12D3KooWEowA3VakSddUjZuBTK3HJhNM7sRqwWDbqtPtwymAMCcy
337+
/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40101/p2p/12D3KooWNGY3guz8pYHrVEqs8se4MSnnmpgguyQYDazMbVCyrMnS
338+
/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40102/p2p/12D3KooWSqZ4qtysb8Du4yVpcc5SYc3gsRuNqgMomggw6hekATWg
339+
/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40103/p2p/12D3KooWSHiGavQpamDPEc6rPaqT4PoS1Lr9aDfrfg5dKM2V6x3H
340+
/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40104/p2p/12D3KooWA3yPrTaLXsggVSCG4mr7c33YNdz5DSs87LszRUVt9vLT
341+
/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40105/p2p/12D3KooWCLcUWCdU4VstETztxE3feQyS57dVDdzBhmkj5tiCaha8
342+
/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40106/p2p/12D3KooWNZWqEoCuhMrc9tTMxtEsfxmeFhjh2agUcmzJFNKxQnNA
343+
/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40107/p2p/12D3KooWAMSP94SM3icSeAXeBmPUuZ5JvwrZ5w87fpRHVeJkdboe
344+
/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40108/p2p/12D3KooWL5gPf5CrARVPhBi6KsDHmB1gsJKZ4vWrcLweWyMjpB5e
345+
/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40109/p2p/12D3KooWT1nNJLGE8jWcshPSq3FmSXmmNn2MzfmvJcWYZ1HrtHnZ
271346
outputs:
272347
peers: ${{ steps.peers.outputs.peers }}
273348
steps:
@@ -296,7 +371,7 @@ jobs:
296371
# TODO: remove when replayer supports identify
297372
KEEP_CONNECTION_WITH_UNKNOWN_STREAM: true
298373
OPENMINA_SCENARIO_SEEDS: ${{ needs.k8s-peers.outputs.peers }}
299-
REPLAYER_MULTIADDR: "/dns4/1.k8.openmina.com/tcp/31968/p2p/12D3KooWPayQEdprqY2m3biReUUybA5LoULpJE7YWu6wetEKKELv"
374+
REPLAYER_MULTIADDR: "/dns4/primary-tcp-proxy.hz.minaprotocol.network/tcp/40110/p2p/12D3KooWPayQEdprqY2m3biReUUybA5LoULpJE7YWu6wetEKKELv"
300375
BPF_ALIAS: /coda/0.0.1/29936104443aaf264a7f0192ac64b1c7173198c1ed404c1bcff5e562e05eb7f6-0.0.0.0
301376
strategy:
302377
matrix:
@@ -333,7 +408,7 @@ jobs:
333408
with:
334409
pattern: tests*
335410
merge-multiple: true
336-
411+
337412
- name: Download tests
338413
uses: actions/download-artifact@v4
339414
with:
@@ -399,7 +474,7 @@ jobs:
399474
env:
400475
PEERS_LIST: ${{ needs.k8s-peers.outputs.peers }}
401476
PEER_LIST_FILE: peer-list.txt
402-
WORK_DIR: data
477+
OPENMINA_HOME: data
403478
BPF_ALIAS: /coda/0.0.1/29936104443aaf264a7f0192ac64b1c7173198c1ed404c1bcff5e562e05eb7f6-0.0.0.0
404479

405480
services:
@@ -444,7 +519,7 @@ jobs:
444519
env:
445520
OPENMINA_COMMAND: openmina
446521
NO_PEER_DISCOVERY: "true"
447-
OUT_PATH: ${{ env.WORK_DIR }}/logs/bootstrap_output
522+
OUT_PATH: ${{ env.OPENMINA_HOME }}/logs/bootstrap_output
448523
RECORD: state-with-input-actions
449524
run: |
450525
mkdir -p $OUT_PATH
@@ -459,14 +534,14 @@ jobs:
459534
uses: actions/upload-artifact@v4
460535
with:
461536
name: bootstrap-logs
462-
path: ${{ env.WORK_DIR }}/logs/*
537+
path: ${{ env.OPENMINA_HOME }}/logs/*
463538
if: ${{ failure() }}
464539

465540
- name: Upload record
466541
uses: actions/upload-artifact@v4
467542
with:
468543
name: bootstrap-record
469-
path: ${{ env.WORK_DIR }}/recorder/*
544+
path: ${{ env.OPENMINA_HOME }}/recorder/*
470545
if: ${{ failure() }}
471546

472547
- name: Archive network debugger database

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
sudo apt install -y protobuf-compiler
1818
- uses: actions-rs/toolchain@v1
1919
with:
20-
toolchain: 1.81
20+
toolchain: 1.83
2121
components: rustfmt, clippy
2222
default: true
2323
- uses: actions-rs/cargo@v1

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/target
22
/node/testing/res/
3+
.DS_Store

CHANGELOG.md

Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.12.0] - 2024-12-04
11+
12+
### Fixed
13+
14+
- Properly handle time in cases in which the system goes to sleep.
15+
- Various corner cases in block proof production.
16+
- Improved ledgers sync during bootstrap (be smarter about which peers to query).
17+
- **P2P**: More efficient memory usage when managing the p2p state.
18+
- **P2P**: Lower outgoing traffic by being more conservative about what is broadcasted to each peer.
19+
- **P2P**: Better handling of disconnections.
20+
- **VRF**: Correctly handle cases in which the delegator table is empty.
21+
- **Webnode**: Peer connection handling improvements.
22+
23+
### Changed
24+
25+
- **Webnode**: Reduced startup time by loading prover indexes in parallel to the bootstrap process.
26+
- **Webnode**: Faster field operations (faster hashing and proving).
27+
- Improved hashing performance by caching and reusing common prefixes.
28+
- Added more pre-validation checks for blocks received from the network.
29+
30+
### Added
31+
32+
- **Webnode**: Transaction propagation
33+
- **P2P**: Support for specifying the external ip to be advertised.
34+
1035
## [0.11.0] - 2024-10-31
1136

1237
### Added
@@ -305,24 +330,25 @@ First public release.
305330
- Alpha version of the node which can connect and syncup to the berkeleynet network, and keep applying new blocks to maintain consensus state and ledger up to date.
306331
- Web-based frontend for the node.
307332

308-
[Unreleased]: https://github.com/openmina/openmina/compare/v0.11.0...develop
309-
[0.11.0]: https://github.com/openmina/openmina/releases/tag/v0.10.3...v0.11.0
310-
[0.10.3]: https://github.com/openmina/openmina/releases/tag/v0.10.0...v0.10.3
311-
[0.10.0]: https://github.com/openmina/openmina/releases/tag/v0.9.0...v0.10.0
312-
[0.9.0]: https://github.com/openmina/openmina/releases/tag/v0.8.14...v0.9.0
313-
[0.8.14]: https://github.com/openmina/openmina/releases/tag/v0.8.13...v0.8.14
314-
[0.8.13]: https://github.com/openmina/openmina/releases/tag/v0.8.3...v0.8.13
315-
[0.8.3]: https://github.com/openmina/openmina/releases/tag/v0.8.2...v0.8.3
316-
[0.8.2]: https://github.com/openmina/openmina/releases/tag/v0.8.1...v0.8.2
317-
[0.8.1]: https://github.com/openmina/openmina/releases/tag/v0.8.0...v0.8.1
318-
[0.8.0]: https://github.com/openmina/openmina/releases/tag/v0.7.0...v0.8.0
319-
[0.7.0]: https://github.com/openmina/openmina/releases/tag/v0.6.0...v0.7.0
320-
[0.6.0]: https://github.com/openmina/openmina/releases/tag/v0.5.1...v0.6.0
321-
[0.5.1]: https://github.com/openmina/openmina/releases/tag/v0.5.0...v0.5.1
322-
[0.5.0]: https://github.com/openmina/openmina/releases/tag/v0.4.0...v0.5.0
323-
[0.4.0]: https://github.com/openmina/openmina/releases/tag/v0.3.0...v0.4.0
324-
[0.3.1]: https://github.com/openmina/openmina/releases/tag/v0.3.0...v0.3.1
325-
[0.3.0]: https://github.com/openmina/openmina/releases/tag/v0.2.0...v0.3.0
326-
[0.2.0]: https://github.com/openmina/openmina/releases/tag/v0.1.0...v0.2.0
327-
[0.1.0]: https://github.com/openmina/openmina/releases/tag/v0.0.1...v0.1.0
333+
[Unreleased]: https://github.com/openmina/openmina/compare/v0.12.0...develop
334+
[0.12.0]: https://github.com/openmina/openmina/compare/v0.11.0...v0.12.0
335+
[0.11.0]: https://github.com/openmina/openmina/compare/v0.10.3...v0.11.0
336+
[0.10.3]: https://github.com/openmina/openmina/compare/v0.10.0...v0.10.3
337+
[0.10.0]: https://github.com/openmina/openmina/compare/v0.9.0...v0.10.0
338+
[0.9.0]: https://github.com/openmina/openmina/compare/v0.8.14...v0.9.0
339+
[0.8.14]: https://github.com/openmina/openmina/compare/v0.8.13...v0.8.14
340+
[0.8.13]: https://github.com/openmina/openmina/compare/v0.8.3...v0.8.13
341+
[0.8.3]: https://github.com/openmina/openmina/compare/v0.8.2...v0.8.3
342+
[0.8.2]: https://github.com/openmina/openmina/compare/v0.8.1...v0.8.2
343+
[0.8.1]: https://github.com/openmina/openmina/compare/v0.8.0...v0.8.1
344+
[0.8.0]: https://github.com/openmina/openmina/compare/v0.7.0...v0.8.0
345+
[0.7.0]: https://github.com/openmina/openmina/compare/v0.6.0...v0.7.0
346+
[0.6.0]: https://github.com/openmina/openmina/compare/v0.5.1...v0.6.0
347+
[0.5.1]: https://github.com/openmina/openmina/compare/v0.5.0...v0.5.1
348+
[0.5.0]: https://github.com/openmina/openmina/compare/v0.4.0...v0.5.0
349+
[0.4.0]: https://github.com/openmina/openmina/compare/v0.3.0...v0.4.0
350+
[0.3.1]: https://github.com/openmina/openmina/compare/v0.3.0...v0.3.1
351+
[0.3.0]: https://github.com/openmina/openmina/compare/v0.2.0...v0.3.0
352+
[0.2.0]: https://github.com/openmina/openmina/compare/v0.1.0...v0.2.0
353+
[0.1.0]: https://github.com/openmina/openmina/compare/v0.0.1...v0.1.0
328354
[0.0.1]: https://github.com/openmina/openmina/releases/tag/v0.0.1

0 commit comments

Comments
 (0)