<p>This adds a new module containing the new inventory monitor project.<br>
It is running since a few weeks under <a rel="nofollow" href="http://46.101.179.224/">http://46.101.179.224/</a> and some of the seeds have updated to that branch already.<br>
It is the implementation of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="723895334" data-permission-text="Title is private" data-url="https://github.com/bisq-network/projects/issues/45" data-hovercard-type="issue" data-hovercard-url="/bisq-network/projects/issues/45/hovercard" href="https://github.com/bisq-network/projects/issues/45">bisq-network/projects#45</a><br>
<a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/jmacxx/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jmacxx">@jmacxx</a> is working on a webapp which should finally replace the simple http server used atm.<br>
It will still need fine tuning of the deviation alert/warning thresholds but it is already pretty useful and helps to detect seed node issues.<br>
Most of the code is only relevant to the monitor project and seed nodes, so it carries very low risk for normal users.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/bisq-network/bisq/pull/4680'>https://github.com/bisq-network/bisq/pull/4680</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Extract method for filling seed nodes from property file</li>
  <li>Make config nullable and extract methods where config is used and apply default value in case config is not set.</li>
  <li>Add inventory module</li>
  <li>Move inventory package to core as we want to include other domain data as well like DAO state</li>
  <li>Add signature to request to limit the feature to requests from trusted nodes (monitor)</li>
  <li>Add readableFileSize</li>
  <li>Add readSeedNodePropertyFile method</li>
  <li>Add sparkjava dependency</li>
  <li>Remove signature from GetInventoryRequest (as monitor is public it does not make sense to limit requests).</li>
  <li>Add shadow plugin</li>
  <li>Make RequestInfo public</li>
  <li>Add InventoryItem enum</li>
  <li>Add nodes from mike</li>
  <li>Shut down connection after response received</li>
  <li>Add network node shutdown</li>
  <li>Add more warn/alert checks</li>
  <li>Add triggers for maxConnections and numConnections</li>
  <li>Fix error handling</li>
  <li>Add peakNumConnections</li>
  <li>Add numAllConnectionsLostEvents</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-49a96e7eea8a94af862798a45174e6ac43eb4f8b4bd40759b5da63ba31ec3ef7">build.gradle</a>
    (16)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-8a4354bcac7cd33403ad24632c7bd1942321b528510353e4d5532c1416a317fe">common/src/main/java/bisq/common/util/Profiler.java</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-954a13a40a21444790276f14d9f6d3b436d9a25407c63649f035fcf6368c12cd">common/src/main/java/bisq/common/util/Utilities.java</a>
    (9)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-51052d21009036a1a7710a09c5715fb792c916728d1fe7d6d499ee4b161902bc">core/src/main/java/bisq/core/network/p2p/inventory/DeviationSeverity.java</a>
    (24)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-f90116f04ea6d2b230970208b5d0125e8bc3953b703db16a8e4c0d5c23b28ba0">core/src/main/java/bisq/core/network/p2p/inventory/GetInventoryRequestHandler.java</a>
    (186)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-aa460674f15b564464a6d173973615024cb04131e26b4ee29cae7cd2b3d03911">core/src/main/java/bisq/core/network/p2p/inventory/GetInventoryRequestManager.java</a>
    (9)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-0c3960b5ae11fa4e471b69a064e386daeaf77a6a9e915a5934968cee1182f6e3">core/src/main/java/bisq/core/network/p2p/inventory/GetInventoryRequester.java</a>
    (48)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-cd1a8775c93d4fd4823e58db64ca2d59ce41e51e25f1a350c8b89c94877df67d">core/src/main/java/bisq/core/network/p2p/inventory/InventoryItem.java</a>
    (97)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-e1fb2237505234ef33b352ea91f55e68504964994cd7e3794922ced30a86568a">core/src/main/java/bisq/core/network/p2p/inventory/messages/GetInventoryRequest.java</a>
    (2)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-5f073f68cac9c697029e48fbb019d0cfba11e5d322273f6a466ea9622530d96d">core/src/main/java/bisq/core/network/p2p/inventory/messages/GetInventoryResponse.java</a>
    (34)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-656c1030ae4bdb35839ac139585f32a63c3aae521641650cbd1f59bfeaa52472">core/src/main/java/bisq/core/network/p2p/seed/DefaultSeedNodeRepository.java</a>
    (49)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-3c5f5cf8eced5b053128c4e28f4e69c3865b611e1521733321a23b88fd304dd7">core/src/main/java/bisq/core/proto/network/CoreNetworkProtoResolver.java</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-9b8da863309f797b82b4ce0c11aaf5ef63d76ece2a0f43a52e23a60a2ed6283e">core/src/main/resources/btc_regtest.seednodes</a>
    (20)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-0a63b35a159becb74f8ef8913d79c2f324b5a6b8479a341d44e854395781a6be">inventory/src/main/java/bisq/inventory/InventoryMonitor.java</a>
    (195)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-116f493562e65bf3727281675f4a1e6a16ef7f657adee2765341650d8a2fb34a">inventory/src/main/java/bisq/inventory/InventoryMonitorMain.java</a>
    (127)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-84f438cb6a72dfea84510c2cb534c8f85434628942dbc1be9c1dad953fb713ce">inventory/src/main/java/bisq/inventory/InventoryUtil.java</a>
    (177)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-ceee4a2fb604cef13b9cbc7e76d8c56b9b2580c4afa1b48ab00397c2d991be7d">inventory/src/main/java/bisq/inventory/InventoryWebServer.java</a>
    (434)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-46e6f10c18ea06f4d46c72e53373585d116149a32d705934922fbdef6f7d2282">inventory/src/main/java/bisq/inventory/RequestInfo.java</a>
    (44)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-6370af602aa0ef32be808364dea3a0044223639511c05a40b0c1004622e597cd">inventory/src/main/resources/inv_btc_mainnet.seednodes</a>
    (19)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-be57cca0655004e62cfee76be83df112cad05225472874bdd5753f443fdf3bb3">inventory/src/main/resources/logback.xml</a>
    (16)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-c159620533c6a13a99158d534b441d96836d1535ce5bd6baf816b5a2fe126b25">p2p/src/main/java/bisq/network/p2p/P2PService.java</a>
    (13)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-90fbbd4ecf271363498ec83c7ebe1e9a26045223058197562408763a34dfb974">p2p/src/main/java/bisq/network/p2p/inventory/GetInventoryRequestHandler.java</a>
    (81)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-d507e32ebebe0f99bb16dd3204e351824396948609c119369095ef98f622e955">p2p/src/main/java/bisq/network/p2p/network/Connection.java</a>
    (31)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-7147f9e11e01e8649aa2bdad0c40fc859f4db91744a01dfec046e55b4271b41d">p2p/src/main/java/bisq/network/p2p/network/ConnectionListener.java</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-1ea9ca18b2e7a9274d5de3a495b4363791a5595424c6c9b9fe6cee57eafe6735">p2p/src/main/java/bisq/network/p2p/network/Statistic.java</a>
    (13)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-03745bbed2f321ab7b59ccecac61170505a473cdde54af835f99cce16cd0ad7f">p2p/src/main/java/bisq/network/p2p/peers/PeerManager.java</a>
    (21)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-51dcd1d852312df65738ff2bd493fdb0f187f50fb7d7324158c8b57fc1de7da7">proto/src/main/proto/pb.proto</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-2b713921f8d201cbbec13338f1472c16704f9973e0ee088309abfc90f92cbbcc">seednode/src/main/java/bisq/seednode/SeedNode.java</a>
    (11)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-15e2368ce0507e626f2d209110670b97ad633599233e0d9a74ae79a46356356b">seednode/src/main/java/bisq/seednode/SeedNodeMain.java</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/bisq-network/bisq/pull/4680/files#diff-7f825392aa37acd1cee0c2e7b9bb7366ad6eac64f3e6cdd816e156bcb69d30de">settings.gradle</a>
    (1)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/bisq-network/bisq/pull/4680.patch'>https://github.com/bisq-network/bisq/pull/4680.patch</a></li>
  <li><a href='https://github.com/bisq-network/bisq/pull/4680.diff'>https://github.com/bisq-network/bisq/pull/4680.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/bisq/pull/4680">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNXYXA47BAJCIGB23X3SL4R5VANCNFSM4S2EWJMA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNS6DU3SUSJA6KBXXXDSL4R5VA5CNFSM4S2EWJMKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4K2RPYVQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/bisq/pull/4680",
"url": "https://github.com/bisq-network/bisq/pull/4680",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>