Releases: 2140-dev/kyoto
Releases · 2140-dev/kyoto
v0.12.0
Added
- Add an explicit transaction broadcasting test
- Add
bitcoin
example
Changed
- Added
Info::SuccessfulHandshake
message when versions/veracks are exchanged with a peer - Update
bitcoin
to0.32.6
- Add
test-utils
dependency fromtokio
to simulate passage of time testnet4
uses DNS seeds for peersimpl_sourceless_error
is private
Fixes
- Introduce the
ReaderMessage
- Show the actual percentage for
Progress
- Introduce
MessageState
for state management withinPeer
- Using
MessageState
, gossiped peers are initially added on a separatetokio::task
- Introduce
BroadcastQueue
for higher transaction broadcast reliability
v0.11.0
Added
- Fetch the
Network
from the node builder - Configure the initial TCP connection timeout when trying new peers
- Add BDK integration links to the
README
- Updated resource usage and profiling in
DETAILS.md
Changed
- Use
HeightExt
internally for bitcoin related math onu32
anchor_checkpoint
is renamed toafter_checkpoint
- Drop the
FilterSyncPolicy
and associated configurations - Block header implementations now have separate "stage" and "write" steps
TxSent
info message is nowTxGossiped
, and is sent after a transaction is requested from the remote node
Fixes
- Migrate the live sync CI task to a weekly job
- Remove
await
points when syncingCFHeaders
andCFilters
- Fetch the headers required to handle both reorganizations and difficulty adjustments when the node starts
- Drop dynamic dispatch in the
network
in favor of explicitV1
andV2
transport
v0.10.0
Added
- Template issue for bugs, enhancement requests, releases
- Mainnet, signet, testnet4 checkpoints
- Testnet4 DNS seeds
- Socks5 proxy connections supported
justfile
improvements
Changed
- Removed the crate lockfile
- Removed the
core
module - Removed the
filter
module - Renamed
DisconnectedHeader
toIndexedHeader
database
feature is nowrusqlite
- Remove
arti
and Tor feature in favor of a Socks5 proxy - Folder for data storage is now
light_client_data
- SQL header schema has been changed to store
BLOB
of consensus encoded header bytes - New log level introduced and
Log
has been renamed toInfo
- Debug strings sent on a separate channel
- Sending messages to the node is synchronous
- Checking
IndexedFilter
for matches is immutable
Fixes
- Introduce
BlockTree
to manage chain data- Constant time data access when indexed by height or hash
- Consolidated block headers, filter headers/hashes, filter checks into a single struct
- Management of candidate forks
- Constant time fork comparison
- CI refactors and improvements
v0.9.0
Added
- Introduce log level and optimize release builds to remove heap allocations for debug messages
- Configure a custom DNS resolver
Changed
Dialog
field renamed toDebug
dns
feature is removed and DNS is used by default- Better naming on the fields of
Warning
NodeBuilder
uses declarative naming for methods
Fixes
- Tor and Signet examples updated
- Adding scripts or peers twice does not overwrite past changes in
NodeBuilder
- Remove invalid assessment of median time past in fork scenario
- Use the proper
inv
->getdata
->tx
message exchange to broadcast transactions
v0.8.0
Added
- Request the broadcast minimum fee rate from connected peers.
Changed
- Removed the
StatelessPeerStore
, used primarily for development - Export the
tokio
crate - Further split
Log
andEvent
enumerations intoLog
,Warning
, andEvent
Fixes
- Update the port and services when peers are gossiped
- Reset the timer after disconnecting from peers due to a stale block
- Remove case for invalid median time check
New Contributors
- @nyonson made their first contribution in https://github.com/rustaceanrob/kyoto/pull/266
Full Changelog: rustaceanrob/kyoto@v0.7.0...v0.8.0
v0.7.0
Added
- Request a block using the
Client
- Add
broadcast_random
convenience method onClient
- Request a
Range
of block headers fromClient
Changed
- Separate logs from events into different event channels
- The
Log
channel is bounded in size and contains informational, but non-critical information - The
Event
channel is unbounded and contains data that must be handled, likeIndexedBlock
- The
- Switch to
corepc-node
instead of unmaintainedbitcoincore-rpc
- Load block headers with
RangeBounds
Fixes
- Remove unnecessary
unwrap
when managing filter headers - Clamp connections to a defined range
v0.6.0
v0.6.0
Added
- Pass
FeeFilter
to client - Add Signet and Bitcoin checkpoints
Changed
- Upgrade
bip324
to0.6.0
- Switch to
corepc-node
to startbitcoind
in CI - Use
into_payload
inbitcoin 0.32.5
Fixes
- Add check to bits before adjustment
- Remove explicit
serde
feature - Use
BLOB
type for peer service flags
v0.5.0
Added
- Client may fetch a
Header
at a particular height - Support for Testnet4 with new example
Changed
HeaderStore
has additionalheader_at
method- Removed unused
IndexedTransaction
variant onNodeMessage
- New
Progress
variant onNodeMessage
Fixes
- Use inline docs for rustdoc
- Check the
CompactTarget
of the block headers received with far stricter requirements with respect to the difficulty adjustment - Bump
bip324
to0.5.0
andbitcoin
to0.32.4
v0.4.0
Added
- New
HeaderCheckpoint
constructor from height shutdown
,add_scripts
,broadcast_transaction
methods have blocking APIs- Add a
TrustedPeer
while the node is running - Add change the peer timeout while the node is running
Changed
- Use
impl Into
whenever possible onNodeBuilder
andClient
APIs - Remove the misleading
wait_for_broadcast
method onClient
Fixes
- Remove
Option
fromWhitelist
as it is already aVec
- Limit the amount of
ADDR
messages a single peer can send
Full Changelog: rustaceanrob/kyoto@v0.3.0...v0.4.0
v0.3.0
Added
- Type alias for
Node
inbuilder
with default generics
Changed
HeaderStore
andPeerStore
traits now have an associated error typeNode
is now generic overH: HeaderStore
andP: PeerStore
- Move
NodeError
subvariants intocore
Full Changelog: rustaceanrob/kyoto@v0.2.0...v0.3.0