Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: merging dev into feat-libp2p #6707

Draft
wants to merge 19 commits into
base: feat-libp2p
Choose a base branch
from

Conversation

hansieodendaal
Copy link
Contributor

@hansieodendaal hansieodendaal commented Nov 27, 2024

Description

Merge development into feat-libp2p

Motivation and Context

feat-libp2p needs to be updated

How Has This Been Tested?

System-level testing

What process can a PR reviewer use to test or verify this change?

Code review

Breaking Changes

  • None
  • Requires data directory on base node to be deleted
  • Requires hard fork
  • Other - Please specify

hansieodendaal and others added 13 commits November 1, 2024 09:22
tari-project#6655)

Description
---
Added check connections to the p2p services (`MonitorPeersService`). All
active connections are pinged on a set (slowish) interval (10 times
slower than the _auto ping metadata interval_). The nodes that do not
respond timeously on three consecutive iterations with a corresponding
pong are disconnected. This will help keep the list of active
connections (lazily) up to date.

**Edit:** 
Fixed an error in the liveness service where misbehaving ping peers were
never disconnected. The liveness service and monitor peers service work
hand in hand. Liveness selects 8 randomly connected peers to obtain
metadata from and will disconnect any of those that misbehave after 1
minute (2x ping intervals). The monitor peers service assesses all
connected peers at a much slower pace and disconnects non-responsive
peers after 15 minutes (10 x 3 ping intervals).

Motivation and Context
---
See tari-project#6516

How Has This Been Tested?
---
Performed system-level testing. From the log below we can see that 5 of
41 active peer connections did not respond with a ping. Peer
`e19e1454a1e0519866297960ad ` was disconnected because it did not
respond three times in a row,
```
2024-10-29 15:12:07.664466900 [minotari::base_node::monitor_peers] TRACE Found 5 of 41 outbound base node peer 
  connections that did not respond to pings
2024-10-29 15:12:07.664619800 [minotari::base_node::monitor_peers] TRACE Peer e2fa82050c2f7579febafb7e08 
  stats - (iteration, connected, responsive) [(3, true, true), (4, true, true), (5, true, false)]
2024-10-29 15:12:07.664683300 [minotari::base_node::monitor_peers] DEBUG Disconnecting e19e1454a1e0519866297960ad 
  as the peer is no longer responsive - (iteration, connected, responsive) [(2, true, true), (3, true, false), 
  (4, true, false), (5, true, false)]
2024-10-29 15:12:07.665853300 [minotari::base_node::monitor_peers] TRACE Peer 6ea597117476676d5ddcb18153 
  stats - (iteration, connected, responsive) [(1, true, true), (2, true, true), (3, true, true), (4, true, true), 
  (5, true, false)]
2024-10-29 15:12:07.665965500 [minotari::base_node::monitor_peers] TRACE Peer a671f812efe5ab14cbb3c1f9f4 
  stats - (iteration, connected, responsive) [(2, true, true), (3, true, true), (4, true, true), 
  (5, true, false)]
2024-10-29 15:12:07.665997800 [minotari::base_node::monitor_peers] TRACE Peer e336b264e02f611cf4fbf51f22 
  stats - (iteration, connected, responsive) [(2, true, true), (3, true, true), (4, true, true), 
  (5, true, false)]
```

What process can a PR reviewer use to test or verify this change?
---
- Code review
- System-level testing

<!-- Checklist -->
<!-- 1. Is the title of your PR in the form that would make nice release
notes? The title, excluding the conventional commit
tag, will be included exactly as is in the CHANGELOG, so please think
about it carefully. -->


Breaking Changes
---

- [x] None
- [ ] Requires data directory on base node to be deleted
- [ ] Requires hard fork
- [ ] Other - Please specify

<!-- Does this include a breaking change? If so, include this line as a
footer -->
<!-- BREAKING CHANGE: Description what the user should do, e.g. delete a
database, resync the chain -->

---------

Co-authored-by: SW van Heerden <[email protected]>
Description
---
Updated the ledger wallet build instructions to ensure it is still
current.

Motivation and Context
---
See above.

How Has This Been Tested?
---
- nanosplus
```
   docker run --rm -it -v ".:/app" -w /app/applications/minotari_ledger_wallet/wallet ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder cargo ledger build stax

    Finished release [optimized] target(s) in 37.50s
   text    data     bss     dec     hex filename
 129488       0   11936  141424   22870 /app/applications/minotari_ledger_wallet/wallet/target/nanosplus/release/minotari_ledger_wallet
Dumping APDU installation file to /app/applications/minotari_ledger_wallet/wallet/target/nanosplus/release/minotari_ledger_wallet.apdu
```
- stax
```
   docker run --rm -it -v ".:/app" -w /app/applications/minotari_ledger_wallet/wallet ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder cargo ledger build stax

       Finished release [optimized] target(s) in 15.47s
   text    data     bss     dec     hex filename
 177552       0   21012  198564   307a4 /app/applications/minotari_ledger_wallet/wallet/target/stax/release/minotari_ledger_wallet
Dumping APDU installation file to /app/applications/minotari_ledger_wallet/wallet/target/stax/release/minotari_ledger_wallet.apdu
``` 

What process can a PR reviewer use to test or verify this change?
---

<!-- Checklist -->
<!-- 1. Is the title of your PR in the form that would make nice release
notes? The title, excluding the conventional commit
tag, will be included exactly as is in the CHANGELOG, so please think
about it carefully. -->


Breaking Changes
---

- [x] None
- [ ] Requires data directory on base node to be deleted
- [ ] Requires hard fork
- [ ] Other - Please specify

<!-- Does this include a breaking change? If so, include this line as a
footer -->
<!-- BREAKING CHANGE: Description what the user should do, e.g. delete a
database, resync the chain -->
…ect#6672)

Bumps
[mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report)
from 4 to 5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mikepenz/action-junit-report/releases">mikepenz/action-junit-report's
releases</a>.</em></p>
<blockquote>
<h2>v5</h2>
<ul>
<li>no changes</li>
</ul>
<h2>v5.0.0-rc01</h2>
<h2>🚀 Features</h2>
<ul>
<li>Improve parsing logic for nested suites
<ul>
<li>PR: <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1224">#1224</a></li>
</ul>
</li>
<li>Configuration to enable grouping by TestSuite in the Detail Summary
<ul>
<li>PR: <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1225">#1225</a></li>
</ul>
</li>
</ul>
<h2>💬 Other</h2>
<ul>
<li>Slight code cleanup
<ul>
<li>PR: <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1223">#1223</a></li>
</ul>
</li>
</ul>
<h2>Contributors:</h2>
<ul>
<li><a
href="https://github.com/mikepenz"><code>@​mikepenz</code></a></li>
</ul>
<h2>v5.0.0-b01</h2>
<h2>🚀 Features</h2>
<ul>
<li>Upgrade dependencies to latest major version
<ul>
<li>PR: <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1220">#1220</a></li>
</ul>
</li>
<li>Add new API to skip annotations all-to-gether
<ul>
<li>PR: <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1221">#1221</a></li>
</ul>
</li>
<li>Introduce flag to <code>fail_on_parse_error</code>
<ul>
<li>PR: <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1222">#1222</a></li>
</ul>
</li>
</ul>
<p>Contributors:</p>
<ul>
<li><a
href="https://github.com/mikepenz"><code>@​mikepenz</code></a></li>
</ul>
<h2>v5.0.0-a03</h2>
<h2>🚀 Features</h2>
<ul>
<li>Improve transformer performance
<ul>
<li>PR: <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1182">#1182</a></li>
</ul>
</li>
<li>Provide optimised class detection skipping globber if not required
<ul>
<li>PR: <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1183">#1183</a></li>
</ul>
</li>
</ul>
<h2>🐛 Fixes</h2>
<ul>
<li>Require <code>pull_request</code> trigger to attach comment
<ul>
<li>PR: <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1181">#1181</a></li>
</ul>
</li>
</ul>
<h2>📦 Dependencies</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/ec3a351c13e080dc4fa94c49ab7ad5bf778a9668"><code>ec3a351</code></a>
Merge pull request <a
href="https://redirect.github.com/mikepenz/action-junit-report/issues/1225">#1225</a>
from mikepenz/feature/grouped_summary</li>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/b317015a407d9971d315f98ee3111f6c3905acda"><code>b317015</code></a>
- html formatting</li>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/58833a96592dd6feab759ce2363925d4fa34f2f5"><code>58833a9</code></a>
- look to further modify formatting</li>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/11d2c3e12b98fd7bd18b90b66f5c0400fe5e241f"><code>11d2c3e</code></a>
- update tests</li>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/bc029673c3566aef1b4bf0db053a763ad2533b2c"><code>bc02967</code></a>
- further improve table format, remove obsolete first column</li>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/d9c3594faa45a169df47a59664ade402a0306df1"><code>d9c3594</code></a>
- adjust table structure</li>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/cfb2e06dd8a33f9c192c4555b18c67a433390d17"><code>cfb2e06</code></a>
- add grouping and comment for nested report</li>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/9cc197e5964bb037481ad823faa78336a90d2485"><code>9cc197e</code></a>
- fix group header (no merged cells possible)</li>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/0d45d52864213bf6b717dfc78811d375d123e47e"><code>0d45d52</code></a>
- update test</li>
<li><a
href="https://github.com/mikepenz/action-junit-report/commit/dda3b1e8d84e5fdf1bdb9fe9a1bc18719f4d41b1"><code>dda3b1e</code></a>
- introduce ability to group the test detailed summary</li>
<li>Additional commits viewable in <a
href="https://github.com/mikepenz/action-junit-report/compare/v4...v5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mikepenz/action-junit-report&package-manager=github_actions&previous-version=4&new-version=5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Description
---
Add new header field, block output mmr which only tracks outputs in
current block

Motivation and Context
---
This is needed in order to validate that all outputs included in the
block is correctly captured in the pow of the header. The current
strategy is to only use the output smt, which commits to all outputs on
the blockchain. This is required for horizon sync and prune mode to
verify the blockchain as we sync.
But someone else wants to verify the block outputs, they have to have
the entire outputs set aka entire blockchain in order to verify that the
outputs are indeed locked behind pow.
This addition allows any person to take only the block and know that the
outputs contained in that block, is correctly locked behind the pow of
the header.

The output field is constructed as two merkle mountain ranges. 
the primary one used in the header field is constructed as
[coinbase_1, coinbase_2, .., coinbase_x,
non_coinbase_ouputs_merkle_root]
with the non_coinbase_ouputs_merkle_root constructed as
[output_1, output_2, .., output_x]

This double mountain range approach allows you to prove the output are
in the block header, as well as create a proof for a specific output.
But separating them allows p2pool to only need to store a single hash +
list of all outputs in order to verify all coin bases are correctly
included in the header. Rather than all outputs or before this pr, the
entire block.

Breaking change
---
Need to resync database
…t#6694)

Description
---
Adds helper function to calculate the hashes for the merkle roots of the
header.
…i-project#6658)

Description
---
Add new service which will periodically get checkpoints from a DNS
server and validate with it's own state. If we fail this check we will
include this information in `get_new_block_template` request so the
sender is aware that this node is out of sync.

Motivation and Context
---
This will allow miners including one from Tari Universe to avoid mining
on the orphan chain. This implementation is
modeled after the [Monero
Pulse](https://docs.getmonero.org/infrastructure/monero-pulse/#moneropulse)

How Has This Been Tested?
---
Run app on the nextnet and look for logs with `tari_pulse` in the
`base_layer.log` file like this:
`tail -f base_layer.log | grep tari_pulse `

Make `get_new_block_template`  and verify if new fields are present.

Create orphan chain (eg. by turning off tor and banning all TCP peers)
and check (with above methods) if nodes detects orphan chain.

What process can a PR reviewer use to test or verify this change?
---
Same as above


Breaking Changes
---

- [x] None
- [ ] Requires data directory on base node to be deleted
- [ ] Requires hard fork
- [ ] Other - Please specify

---------

Co-authored-by: SW van Heerden <[email protected]>
Description
---
Fixed the base node shutdown on Ubuntu (and hopefully on MacOS) whereas
pressing Ctrl-C multiple times rendered the command line interface in an
undefined state. This was not issue on Windows.

**Note:** The change to
'base_layer\core\src\base_node\tari_pulse_service\mod.rs' is an interim
change to enable testing (getting rid of the repeated command-line spam)
but not required for the base node to shut down. More changes in tari-project#6696.

Motivation and Context
---
The base node did not shut down properly on Ubuntu and MacOs.

How Has This Been Tested?
---
System-level testing on Windows and Ubuntu (WSL).

What process can a PR reviewer use to test or verify this change?
---
System-level testing - still outstanding on MacOS

<!-- Checklist -->
<!-- 1. Is the title of your PR in the form that would make nice release
notes? The title, excluding the conventional commit
tag, will be included exactly as is in the CHANGELOG, so please think
about it carefully. -->


Breaking Changes
---

- [x] None
- [ ] Requires data directory on base node to be deleted
- [ ] Requires hard fork
- [ ] Other - Please specify

<!-- Does this include a breaking change? If so, include this line as a
footer -->
<!-- BREAKING CHANGE: Description what the user should do, e.g. delete a
database, resync the chain -->
Description
---
Await shutdown signal and reduce error logging when node failed to
compare blocks hashes.

Motivation and Context
---
Error logs were spamming on not supported network, greatly reducing
readability and shutdown signal wasn't working propely.

How Has This Been Tested?
---
Run local node on esmeralda network (which is not supported yet) and
watch for error logs. Also check shutdown behavior.

What process can a PR reviewer use to test or verify this change?
---
Same as above


Breaking Changes
---

- [x] None
- [ ] Requires data directory on base node to be deleted
- [ ] Requires hard fork
- [ ] Other - Please specify

---------

Co-authored-by: SW van Heerden <[email protected]>
Co-authored-by: Hansie Odendaal <[email protected]>
Description
---
Added a wallet connectivity timeout so that long-winded dial-peer
failures can be managed timeously.

Motivation and Context
---
On some mobile wallets, the `dial_peer` command can take up to 6 minutes
to return an error or timeout. See the nextnet mobile wallet log below
and notice the timestamp difference between `Attempting base node peer`
and `Connectivity error: ConnectionFailed`:
```
2024-11-26 09:48:39.078496504 [wallet::connectivity] DEBUG Attempting base node peer '1c8b393640e1cd7d1a86957eb3'... (last attempt Some(895ns))
2024-11-26 09:54:32.664270603 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Failed to connect to peer within the maximum number of attempts
2024-11-26 09:54:32.667991713 [wallet::connectivity] DEBUG Attempting base node peer 'a04e78a02df887a26ffa9eadaa'... (last attempt Some(122ns))
2024-11-26 09:58:35.639455170 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Failed to connect to peer within the maximum number of attempts
2024-11-26 09:58:35.642903697 [wallet::connectivity] DEBUG Attempting base node peer 'e108eb7fbf44d58199908aa928'... (last attempt Some(244ns))
2024-11-26 10:00:03.975743624 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Failed to connect to peer within the maximum number of attempts
2024-11-26 10:00:03.978222425 [wallet::connectivity] DEBUG Attempting base node peer '6ea597117476676d5ddcb18153'... (last attempt Some(163ns))
2024-11-26 10:04:24.017030169 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Failed to connect to peer within the maximum number of attempts
2024-11-26 10:04:24.022077451 [wallet::connectivity] DEBUG Attempting base node peer '63718f177e749a0484a7050f8d'... (last attempt Some(366ns))
2024-11-26 10:09:52.935971247 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Failed to connect to peer within the maximum number of attempts
2024-11-26 10:09:52.939635269 [wallet::connectivity] DEBUG Attempting base node peer 'db5ab85a84ce79bcd2ea700f13'... (last attempt Some(285ns))
2024-11-26 10:16:01.668541211 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Failed to connect to peer within the maximum number of attempts
2024-11-26 10:16:01.672009107 [wallet::connectivity] DEBUG Attempting base node peer '81e258cb5e8419dfdd863282c3'... (last attempt Some(610ns))
2024-11-26 10:20:25.197734699 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Failed to connect to peer within the maximum number of attempts
2024-11-26 10:20:25.202187051 [wallet::connectivity] DEBUG Attempting base node peer '6d9043bba0c196ded52a9f79da'... (last attempt Some(244ns))
2024-11-26 10:20:26.038427123 [wallet::connectivity] DEBUG Established peer connection to base node '6d9043bba0c196ded52a9f79da'
```

This PR, as tested on Windows console wallet, with many dysfunctional
peer seeds on purpose
```
2024-11-26 16:29:06.603475100 [wallet::connectivity] DEBUG Attempting base node peer '1c8b393640e1cd7d1a86957eb3'... (last attempt Some(100ns))
2024-11-26 16:29:06.603488500 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:07.615599600 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '1c8b393640e1cd7d1a86957eb3' in 1s'
2024-11-26 16:29:07.615740400 [wallet::connectivity] DEBUG Attempting base node peer 'e108eb7fbf44d58199908aa928'... (last attempt Some(100ns))
2024-11-26 16:29:07.615751700 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:08.617694200 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'e108eb7fbf44d58199908aa928' in 1s'
2024-11-26 16:29:08.617884800 [wallet::connectivity] DEBUG Attempting base node peer '63718f177e749a0484a7050f8d'... (last attempt Some(100ns))
2024-11-26 16:29:08.617903900 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:09.631693800 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '63718f177e749a0484a7050f8d' in 1s'
2024-11-26 16:29:09.631830300 [wallet::connectivity] DEBUG Attempting base node peer 'b02156f7ec30db5d661dd9b6e2'... (last attempt Some(0ns))
2024-11-26 16:29:09.631840600 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:09.650843600 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Noise handshake error: An established connection was aborted by the software in your host machine. (os error 10053)
2024-11-26 16:29:09.650927000 [wallet::connectivity] DEBUG Attempting base node peer 'a04e78a02df887a26ffa9eadaa'... (last attempt Some(0ns))
2024-11-26 16:29:09.650937900 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:10.663273200 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'a04e78a02df887a26ffa9eadaa' in 1s'
2024-11-26 16:29:10.663415700 [wallet::connectivity] DEBUG Attempting base node peer 'a12b205abe9023e621910f0ee9'... (last attempt Some(100ns))
2024-11-26 16:29:10.663430500 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:11.678154700 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'a12b205abe9023e621910f0ee9' in 1s'
2024-11-26 16:29:11.678311700 [wallet::connectivity] DEBUG Attempting base node peer '81e258cb5e8419dfdd863282c3'... (last attempt Some(0ns))
2024-11-26 16:29:11.678338700 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:12.695260800 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '81e258cb5e8419dfdd863282c3' in 1s'
2024-11-26 16:29:12.695391800 [wallet::connectivity] DEBUG Attempting base node peer '6d9043bba0c196ded52a9f79da'... (last attempt Some(100ns))
2024-11-26 16:29:12.695401300 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:13.708776300 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '6d9043bba0c196ded52a9f79da' in 1s'
2024-11-26 16:29:13.708929300 [wallet::connectivity] DEBUG Attempting base node peer 'fb593780d69882b938429beb69'... (last attempt Some(0ns))
2024-11-26 16:29:13.708951900 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:14.721569600 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'fb593780d69882b938429beb69' in 1s'
2024-11-26 16:29:14.721697500 [wallet::connectivity] DEBUG Attempting base node peer 'db5ab85a84ce79bcd2ea700f13'... (last attempt Some(100ns))
2024-11-26 16:29:14.721708200 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:15.734914000 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'db5ab85a84ce79bcd2ea700f13' in 1s'
2024-11-26 16:29:15.735066300 [wallet::connectivity] DEBUG Attempting base node peer '6ea597117476676d5ddcb18153'... (last attempt Some(0ns))
2024-11-26 16:29:15.735099300 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:16.740185800 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '6ea597117476676d5ddcb18153' in 1s'
2024-11-26 16:29:16.740313200 [wallet::connectivity] DEBUG Attempting base node peer '647db13c611aa70dcd9f06a8b1'... (last attempt Some(100ns))
2024-11-26 16:29:16.740324900 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:17.740956000 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '647db13c611aa70dcd9f06a8b1' in 1s'
2024-11-26 16:29:17.741152500 [wallet::connectivity] DEBUG Attempting base node peer 'a4dbaf87693acaa0fe92f8f4f0'... (last attempt Some(0ns))
2024-11-26 16:29:17.741166200 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:18.744368800 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'a4dbaf87693acaa0fe92f8f4f0' in 1s'
2024-11-26 16:29:18.744526000 [wallet::connectivity] DEBUG Attempting base node peer 'e7b0d91465d5386e9d07e53cff'... (last attempt Some(0ns))
2024-11-26 16:29:18.744538900 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:19.745518100 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'e7b0d91465d5386e9d07e53cff' in 1s'
2024-11-26 16:29:19.745680000 [wallet::connectivity] DEBUG Attempting base node peer '17bfe6ee47f45491ea9407ad89'... (last attempt Some(0ns))
2024-11-26 16:29:19.745797100 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:20.747956700 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '17bfe6ee47f45491ea9407ad89' in 1s'
2024-11-26 16:29:20.748180600 [wallet::connectivity] DEBUG Attempting base node peer 'bd11a65bb14f8188e0bde642d0'... (last attempt Some(0ns))
2024-11-26 16:29:20.748227700 [wallet::connectivity] TRACE Attempt dial with client timeout 1s
2024-11-26 16:29:21.755291100 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'bd11a65bb14f8188e0bde642d0' in 1s'
2024-11-26 16:29:21.755439100 [wallet::connectivity] DEBUG Attempting base node peer 'b7c07e293f2186689e88978bff'... (last attempt Some(0ns))
2024-11-26 16:29:21.755453200 [wallet::connectivity] TRACE Attempt dial with client timeout 10s
2024-11-26 16:29:23.810412000 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Failed to connect to peer within the maximum number of attempts
2024-11-26 16:29:23.810491600 [wallet::connectivity] DEBUG Attempting base node peer '1c8b393640e1cd7d1a86957eb3'... (last attempt Some(0ns))
2024-11-26 16:29:23.810501100 [wallet::connectivity] TRACE Attempt dial with client timeout 10s
2024-11-26 16:29:33.811236800 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '1c8b393640e1cd7d1a86957eb3' in 10s'
2024-11-26 16:29:33.811393800 [wallet::connectivity] DEBUG Attempting base node peer 'e108eb7fbf44d58199908aa928'... (last attempt Some(100ns))
2024-11-26 16:29:33.811404200 [wallet::connectivity] TRACE Attempt dial with client timeout 10s
2024-11-26 16:29:43.822083900 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'e108eb7fbf44d58199908aa928' in 10s'
2024-11-26 16:29:43.822250500 [wallet::connectivity] DEBUG Attempting base node peer '63718f177e749a0484a7050f8d'... (last attempt Some(100ns))
2024-11-26 16:29:43.822263700 [wallet::connectivity] TRACE Attempt dial with client timeout 10s
2024-11-26 16:29:53.850035700 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '63718f177e749a0484a7050f8d' in 10s'
2024-11-26 16:29:53.850223800 [wallet::connectivity] DEBUG Attempting base node peer 'b02156f7ec30db5d661dd9b6e2'... (last attempt Some(0ns))
2024-11-26 16:29:53.850241100 [wallet::connectivity] TRACE Attempt dial with client timeout 10s
2024-11-26 16:29:53.870034300 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Noise handshake error: An existing connection was forcibly closed by the remote host. (os error 10054)
2024-11-26 16:29:53.870101100 [wallet::connectivity] DEBUG Attempting base node peer 'a04e78a02df887a26ffa9eadaa'... (last attempt Some(100ns))
2024-11-26 16:29:53.870110100 [wallet::connectivity] TRACE Attempt dial with client timeout 10s
2024-11-26 16:30:00.043621300 [wallet::connectivity] WARN  Connectivity error: ConnectionFailed: Failed to connect to peer within the maximum number of attempts
2024-11-26 16:30:00.047536900 [wallet::connectivity] DEBUG Attempting base node peer 'a12b205abe9023e621910f0ee9'... (last attempt Some(100ns))
2024-11-26 16:30:00.047550400 [wallet::connectivity] TRACE Attempt dial with client timeout 10s
2024-11-26 16:30:10.053350900 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to 'a12b205abe9023e621910f0ee9' in 10s'
2024-11-26 16:30:10.053487900 [wallet::connectivity] DEBUG Attempting base node peer '81e258cb5e8419dfdd863282c3'... (last attempt Some(100ns))
2024-11-26 16:30:10.053501000 [wallet::connectivity] TRACE Attempt dial with client timeout 10s
2024-11-26 16:30:20.068640100 [wallet::connectivity] WARN  Connectivity error: Client cancelled: 'Could not connect to '81e258cb5e8419dfdd863282c3' in 10s'
2024-11-26 16:30:20.068766200 [wallet::connectivity] DEBUG Attempting base node peer '6d9043bba0c196ded52a9f79da'... (last attempt Some(100ns))
2024-11-26 16:30:20.068777100 [wallet::connectivity] TRACE Attempt dial with client timeout 10s
2024-11-26 16:30:20.068813900 [wallet::connectivity] DEBUG Established peer connection to base node '6d9043bba0c196ded52a9f79da'
```

How Has This Been Tested?
---
System-level testing

What process can a PR reviewer use to test or verify this change?
---
Code review
System-level testing

<!-- Checklist -->
<!-- 1. Is the title of your PR in the form that would make nice release
notes? The title, excluding the conventional commit
tag, will be included exactly as is in the CHANGELOG, so please think
about it carefully. -->


Breaking Changes
---

- [x] None
- [ ] Requires data directory on base node to be deleted
- [ ] Requires hard fork
- [ ] Other - Please specify

<!-- Does this include a breaking change? If so, include this line as a
footer -->
<!-- BREAKING CHANGE: Description what the user should do, e.g. delete a
database, resync the chain -->
…x openssl builds (tari-project#6701)

Description
Add basic doc for Windows build setup
Update randomx-rs
Fix Windows openssl dependency for build binary workflow
Remove some older dependency and some envs

Motivation and Context
Improve builds for Windows

How Has This Been Tested?
Builds in local fork
Description
---
Hickory dns inclused open ssl which has trouble compiling on all
platforms. Making it optional only when needed removes the need to solve
this
Description
---
~- Solve openssl build issue for non-base nodes by moving the Tari pulse
service to the base node application~
- Fixed Tari pulse not adhering to the tick intervals

Motivation and Context
---
~- Openssl cause build issues for other platforms~
- Tari puls were running _as fast as possible_, instead of adhering to
the tick intervals

```
2024-11-27 10:31:41.834109900 [c::bn::tari_pulse] INFO  Initializing Tari Pulse Service
2024-11-27 10:31:41.834119800 [c::bn::tari_pulse] INFO  Tari Pulse Service initialized
2024-11-27 10:31:41.994249400 [c::bn::tari_pulse] INFO  Tari Pulse Service initialized with DNS name: checkpoints-nextnet.tari.com
2024-11-27 10:31:41.995570900 [c::bn::tari_pulse] TRACE Interval tick: 1
2024-11-27 10:31:42.093937500 [c::bn::tari_pulse] TRACE Passed checkpoints: true, DNS: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa), Local: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa)
2024-11-27 10:31:42.099942200 [c::bn::tari_pulse] TRACE Interval tick: 2
2024-11-27 10:31:42.151937500 [c::bn::tari_pulse] TRACE Passed checkpoints: true, DNS: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa), Local: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa)
2024-11-27 10:31:42.162359500 [c::bn::tari_pulse] TRACE Interval tick: 3
2024-11-27 10:31:42.553671300 [c::bn::tari_pulse] TRACE Passed checkpoints: true, DNS: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa), Local: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa)
2024-11-27 10:31:42.568889200 [c::bn::tari_pulse] TRACE Interval tick: 4
2024-11-27 10:31:42.622576100 [c::bn::tari_pulse] TRACE Passed checkpoints: true, DNS: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa), Local: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa)
2024-11-27 10:31:42.627371600 [c::bn::tari_pulse] TRACE Interval tick: 5
2024-11-27 10:31:42.870493900 [c::bn::tari_pulse] TRACE Passed checkpoints: true, DNS: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa), Local: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa)
```

- This PR:
```
2024-11-27 11:51:08.123837900 [c::bn::tari_pulse] INFO  Initializing Tari Pulse Service
2024-11-27 11:51:08.123852600 [c::bn::tari_pulse] INFO  Tari Pulse Service initialized
2024-11-27 11:51:08.278346300 [c::bn::tari_pulse] INFO  Tari Pulse Service initialized with DNS name: checkpoints-nextnet.tari.com
2024-11-27 11:51:08.279742100 [c::bn::tari_pulse] TRACE Interval tick: 1
2024-11-27 11:51:08.353759600 [c::bn::tari_pulse] TRACE Passed checkpoints: true, DNS: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa), Local: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa)
2024-11-27 11:53:08.297138300 [c::bn::tari_pulse] TRACE Interval tick: 2
2024-11-27 11:53:08.700206500 [c::bn::tari_pulse] TRACE Passed checkpoints: true, DNS: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa), Local: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa)
2024-11-27 11:55:08.303411400 [c::bn::tari_pulse] TRACE Interval tick: 3
2024-11-27 11:55:08.358827400 [c::bn::tari_pulse] TRACE Passed checkpoints: true, DNS: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa), Local: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa)
2024-11-27 11:57:08.311930500 [c::bn::tari_pulse] TRACE Interval tick: 4
2024-11-27 11:57:08.416916200 [c::bn::tari_pulse] TRACE Passed checkpoints: true, DNS: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa), Local: (45168, 1e3c56468f464072d9879e29a70891e9916f2206116c8819637c266a8b1d2efa)
```

How Has This Been Tested?
---
System-level testing.
~**Note:** Build tests for other platforms must still be performed.~

What process can a PR reviewer use to test or verify this change?
---
Code review.
System-level testing.

<!-- Checklist -->
<!-- 1. Is the title of your PR in the form that would make nice release
notes? The title, excluding the conventional commit
tag, will be included exactly as is in the CHANGELOG, so please think
about it carefully. -->


Breaking Changes
---

- [x] None
- [ ] Requires data directory on base node to be deleted
- [ ] Requires hard fork
- [ ] Other - Please specify

<!-- Does this include a breaking change? If so, include this line as a
footer -->
<!-- BREAKING CHANGE: Description what the user should do, e.g. delete a
database, resync the chain -->
@hansieodendaal hansieodendaal marked this pull request as draft November 27, 2024 14:26
@hansieodendaal hansieodendaal changed the title feat: merging dev #6655 feat: merging dev #6655 into feat-libp2p Nov 27, 2024
Copy link

github-actions bot commented Nov 27, 2024

Test Results (Integration tests)

 2 files  10 suites   13m 46s ⏱️
24 tests 23 ✅ 0 💤 1 ❌
25 runs  24 ✅ 0 💤 1 ❌

For more details on these failures, see this check.

Results for commit a225333.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Nov 27, 2024

Test Results (CI)

    3 files    126 suites   10m 46s ⏱️
1 161 tests 1 161 ✅ 0 💤 0 ❌
3 483 runs  3 483 ✅ 0 💤 0 ❌

Results for commit a225333.

♻️ This comment has been updated with latest results.

@hansieodendaal hansieodendaal marked this pull request as ready for review November 27, 2024 15:55
@hansieodendaal hansieodendaal requested a review from a team as a code owner November 27, 2024 15:55
@hansieodendaal hansieodendaal changed the title feat: merging dev #6655 into feat-libp2p chore: merging dev #6655 into feat-libp2p Nov 28, 2024
@hansieodendaal hansieodendaal changed the title chore: merging dev #6655 into feat-libp2p chore: merging dev into feat-libp2p Nov 28, 2024
@hansieodendaal hansieodendaal marked this pull request as draft November 28, 2024 06:44
# Conflicts:
#	Cargo.lock
#	applications/minotari_app_grpc/proto/base_node.proto
#	applications/minotari_node/src/bootstrap.rs
#	applications/minotari_node/src/commands/command/ping_peer.rs
#	base_layer/contacts/Cargo.toml
#	base_layer/core/Cargo.toml
#	base_layer/core/src/base_node/chain_metadata_service/service.rs
#	base_layer/core/src/base_node/mod.rs
#	base_layer/core/src/proto/block.proto
#	base_layer/core/src/transactions/aggregated_body.rs
#	base_layer/p2p/Cargo.toml
#	base_layer/p2p/src/services/liveness/handle.rs
#	base_layer/p2p/src/services/liveness/mod.rs
#	base_layer/p2p/src/services/liveness/service.rs
#	base_layer/p2p/src/services/liveness/state.rs
#	base_layer/p2p/src/services/mod.rs
#	base_layer/p2p/src/services/monitor_peers/mod.rs
#	base_layer/p2p/src/services/monitor_peers/service.rs
#	base_layer/wallet/Cargo.toml
#	base_layer/wallet/src/connectivity_service/service.rs
#	base_layer/wallet_ffi/Cargo.toml
#	infrastructure/test_utils/Cargo.toml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants