v0.2.0 (on Bitcoin Core 0.19.1)
blockstreamsatellite
released this
29 Jan 21:38
·
16162 commits
to master
since this release
UDP Multicast Tx
- Refactor the UDP Tx packet scheduler implementation on
udpnet.cpp
. - Implement a standalone ring buffer class and use it on the new scheduler.
- Add a class to handle throttling in the UDP packet scheduler and reuse it to
implement the throttling of txns sent over UDP multicast. - Remove the tracking of block Tx window cycles (with
debug=udpmulticast
) due
to inaccuracies that derive from the chunk interleaving approach. - Fix checksum initialization on the UDP message header.
- Fix the computation of physical and logical UDP multicast stream indexes.
- Configure option
udpmulticasttx
based on an independent configuration file
instead of using comma-separated arguments. - Support the independent enabling of the block and txn streams composing each
UDP multicast Tx instance. - Support control of FEC overhead applied to block repetition loops via the new
udpmulticasttx
configuration file. - Fix rounding of variable overhead used on FEC encoding.
UDP Multicast Rx
- Fix the UDP multicast Rx bitrate measurements that were not considering the
variable-length UDP packets used for txns.
FEC
- Add unit tests covering
fec.cpp
. - Support FEC decoding in both memory and mmap modes. Use the memory mode for
new blocks and the mmap approach for historic (repeated) blocks. - Optimize the fetching of wirehair-decoded FEC objects that are not pre-filled
(i.e., historic blocks and large mempool txns). - Update the naming format adopted for memory-mapped files storing partial
FEC-encoded block data. - Support persistence of partially-received FEC-encoded blocks across
sessions. Keep the partial block files on disk until they are entirely decoded
and reload partially-received block files on startup.
RPCs
Tx RPCs
- Add RPC
gettxqueueinfo
to fetch information from the transmit queues active
in the UDP Tx packet scheduler. - Add RPC
gettxwindowinfo
to fetch the UDP multicast Tx block window status
and remove this information from the previous periodic debug logs. - Add RPC
gettxntxinfo
for monitoring of mempool txn transmissions. - Add RPC
txblock
for re-transmission of any arbitrary block (specified by
height) over the UDP multicast Tx instances.
Rx RPCs
- Add RPC
getfechitratio
to fetch the txn and FEC chunk hit ratios
corresponding to the txn/chunk pre-filling mechanism. - Add RPC
getudpmulticastinfo
to read UDP multicast Rx information, including
the measured bit rates. - Add RPC
getoooblocks
to obtain information regarding out-of-order blocks.
Debug options
- Drop the previous optional debug printing of FEC chunk stats, deprecated in
favor of debugging using thegetchunkstats
RPC.