From f85b7b478ceee6114735a0b0e4ee929d5695a4d2 Mon Sep 17 00:00:00 2001 From: Ko Chanhyuck Date: Tue, 3 Sep 2019 19:44:46 +0900 Subject: [PATCH 1/3] Adjust broadcast timing --- Libplanet/Net/Swarm.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Libplanet/Net/Swarm.cs b/Libplanet/Net/Swarm.cs index 54d7afc316c..fed037ebf20 100644 --- a/Libplanet/Net/Swarm.cs +++ b/Libplanet/Net/Swarm.cs @@ -1452,6 +1452,8 @@ private void BroadcastTxIds(IEnumerable txIds) $"Append failed during {nameof(ProcessBlockHashes)}() due to exception: {e}"); throw; } + + BroadcastBlocks(blocks); } private async Task> SyncPreviousBlocksAsync( @@ -1606,9 +1608,6 @@ CancellationToken cancellationToken _blockChain.Swap(previousBlocks, render: true); _logger.Debug("Swapping complete"); } - - var msg = new BlockHashes(peer.Address, blocks.Select(b => b.Hash)); - BroadcastMessage(msg); } else { @@ -1744,6 +1743,8 @@ private void TransferTxs(GetTxs getTxs) _blockChain.StageTransactions(txs.ToImmutableHashSet()); TxReceived.Set(); _logger.Debug("Txs staged successfully."); + + BroadcastTxs(txs); } private void TransferBlocks(GetBlocks getData) From 9668bd1ae02e4367e7cdc687145071a2e7a99fe9 Mon Sep 17 00:00:00 2001 From: Ko Chanhyuck Date: Wed, 4 Sep 2019 15:16:46 +0900 Subject: [PATCH 2/3] Update CHANGES.md --- CHANGES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 437e52355a4..1a2022c7068 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -57,6 +57,8 @@ To be released. ### Behavioral changes + - `Swarm` now broadcasts transactions as soon as new transactions are received. + [[#463], [#496]] - `Swarm` now ignores block hashes which already exists. [[#461], [#484]] - `Swarm.PreloadAsync()` method became to download precalculated states of blocks from a likely branchpoint instead of a genesis block from @@ -82,11 +84,13 @@ To be released. [#420]: https://github.com/planetarium/libplanet/pull/420 [#450]: https://github.com/planetarium/libplanet/pull/450 [#461]: https://github.com/planetarium/libplanet/issues/461 +[#463]: https://github.com/planetarium/libplanet/issues/463 [#470]: https://github.com/planetarium/libplanet/pull/470 [#481]: https://github.com/planetarium/libplanet/pull/481 [#483]: https://github.com/planetarium/libplanet/issues/483 [#484]: https://github.com/planetarium/libplanet/pull/484 [#486]: https://github.com/planetarium/libplanet/pull/486 +[#496]: https://github.com/planetarium/libplanet/pull/496 [Kademlia]: https://en.wikipedia.org/wiki/Kademlia From 3e17b70845fb69c4088a1125daca44e1a3d2a69b Mon Sep 17 00:00:00 2001 From: Ko Chanhyuck Date: Wed, 4 Sep 2019 18:22:00 +0900 Subject: [PATCH 3/3] Broadcast block at AppendBlocksAsync --- Libplanet/Net/Swarm.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Libplanet/Net/Swarm.cs b/Libplanet/Net/Swarm.cs index fed037ebf20..9b881e1b4b7 100644 --- a/Libplanet/Net/Swarm.cs +++ b/Libplanet/Net/Swarm.cs @@ -1452,8 +1452,6 @@ private void BroadcastTxIds(IEnumerable txIds) $"Append failed during {nameof(ProcessBlockHashes)}() due to exception: {e}"); throw; } - - BroadcastBlocks(blocks); } private async Task> SyncPreviousBlocksAsync( @@ -1608,6 +1606,9 @@ CancellationToken cancellationToken _blockChain.Swap(previousBlocks, render: true); _logger.Debug("Swapping complete"); } + + // FIXME: Moved to more appropriate place + BroadcastBlocks(blocks); } else {