haskoin-node
P2P library for Bitcoin and Bitcoin Cash
http://github.com/haskoin/haskoin#readme
LTS Haskell 23.1: | 1.1.3 |
Stackage Nightly 2024-12-09: | 1.1.3 |
Latest on Hackage: | 1.1.3 |
MIT licensed by Jean-Pierre Rupp
Maintained by [email protected]
This version can be pinned in stack with:
haskoin-node-1.1.3@sha256:4090a2332e037a59d9ef733785b27416bc5e05602cc13cdc7ff274467acca88f,2276
Module documentation for 1.1.3
- Haskoin
Depends on 23 packages(full list with versions):
Haskoin Node
Haskoin Node is a peer-to-peer library for Bitcoin and Bitcoin Cash. It uses a RocksDB database to store blockchain headers and peers.
Changes
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[1.1.3] - 2024-05-23
Fixed
- Tickle a peer whenever a message is received.
[1.1.2] - 2024-05-23
Fixed
- Correct log messages from peer manager.
[1.1.1] - 2024-05-23
Fixed
- Peers timeout more aggressively.
[1.1.0] - 2024-03-14
Changed
- Update LTS Haskell & upstream dependencies.
[1.0.1] - 2023-08-03
Changed
- Add compatibility with latest LTS Haskell.
[1.0.0] - 2023-07-28
Changed
- Make compatible with latest haskoin-core.
- Use DuplicateRecordFields and OverloadedRecordDot.
- Simplify pub/sub queues.
- Multiple refactoring passes.
[0.18.1] - 2022-07-27
Fixed
- Set default port for peers where it is unset.
[0.18.0] - 2022-07-27
Added
- Support setting up and connecting to IPv6 peers.
[0.17.14] - 2021-08-14
Fixed
- Reduce verbosity on incoming header decode test.
- Show appropriate error message upon receiving empty headers.
[0.17.13] - 2021-08-14
Added
- Display more details about invalid incoming headers.
[0.17.12] - 2021-05-17
Fixed
- Do not connect to more than the maximum number of peers.
[0.17.11] - 2021-05-17
Added
- Display message command that disconnects a peer.
[0.17.10] - 2021-05-17
Fixed
- Correct disconnect timeout algorithm bug.
[0.17.9] - 2021-05-17
Fixed
- Add randomised timeouts to avoid disconnecting all peers.
[0.17.2] - 2021-03-09
Fixed
- Do not start chain actor until database initialized.
[0.17.1] - 2021-01-08
Changed
- Depend on haskoin-core-0.17.3.
[0.17.0] - 2020-10-21
Added
- Support for Bitcoin Cash November 2020 hard fork.
- BlockHeaders instance for ReaderT Chain.
[0.16.0] - 2020-07-23
Changed
- Add support for column families.
[0.15.0] - 2020-07-20
Changed
- Use new Haskell bindings for RocksDB.
[0.14.1] - 2020-06-19
Fixed
- Correct flawed peer locking logic in Chain actor.
[0.14.0] - 2020-06-18
Changed
- Massively refactor everything in a non-backwards-compatible way.
- Use MIT license.
- Bump haskoin-core.
- Bump secp256k1-haskell.
Fixed
- Fix getting stuck on a single peer.
[0.13.0] - 2020-05-08
Changed
- Depend on Haskoin Store 0.13.3.
- Better code organisation.
[0.12.0] - 2020-05-06
Changed
- Add a test suite that simulates network instead of connecting to real one.
[0.11.3] - 2020-05-03
Changed
- Revert including multiline decoding error text in logs.
[0.11.2] - 2020-05-03
Changed
- Include header decoding error text in logs.
[0.11.1] - 2020-05-03
Changed
- Improve logging.
[0.11.0] - 2020-05-03
Changed
- Set peer too old time
[0.10.1] - 2020-05-03
Changed
- Disconnect old peers after 48 hours instead of 30 minutes.
[0.10.0] - 2020-05-03
Changed
- Move modules out of Network.Haskoin namespace.
- Add better and more logging.
- Change Manager module name and related values to PeerManager.
[0.9.21] - 2020-04-07
Removed
- Remove unnecessary logging.
[0.9.20] - 2020-04-07
Changed
- Better log messages.
- Less verbose debug logging.
[0.9.19] - 2020-04-07
Changed
- Better log messages.
[0.9.18] - 2020-04-07
Added
- More aggressive peer discovery.
[0.9.17] - 2020-04-07
Added
- Peers are disconnected automatically after awhile.
[0.9.16] - 2020-02-08
Added
- Lower bound versions for some dependencies.
[0.9.15] - 2020-01-15
Changed
- Update to support new
NetworkAddress
data structure fromhaskoin-core
.
[0.9.14] - 2019-12-10
Removed
- No longer support storing peers in db as performance tradeoff doesn’t justify it.
[0.9.13] - 2019-10-08
Changed
- Really store peers in db.
[0.9.12] - 2019-10-08
Changed
- Demote some logging to debug level.
[0.9.11] - 2019-10-02
Added
- Add
-O2
optimisations to GHC.
[0.9.10] - 2019-04-19
Added
- Increase debugging information where application freezes.
[0.9.9] - 2019-04-12
Added
- Increase debugging information.
[0.9.8] - 2019-04-12
Changed
- Increase version of haskoin-core to 0.9.0.
- Fix some tests.
[0.9.7] - 2019-04-12
Added
- More debugging.
Changed
- Be defensive against duplicate peers.
- Increase interval between housekeeping pings.
- Replace peers in database atomically.
[0.9.6] - 2019-04-01
Changed
- Randomize known peers instead of keeping scores.
- Simplify peer management code to avoid freezes.
- Merge logic for chain and manager.
[0.9.5] - 2018-11-14
Changed
- Do not record new peers in database when peer discovery is disabled.
[0.9.4] - 2018-11-01
Changed
- Don’t spam best block events.
[0.9.3] - 2018-10-22
Changed
- Correct display of milliseconds in log.
- Correct bug when receiving headers from unknown peer.
- Simplify chain syncing code.
[0.9.2] - 2018-10-18
Changed
- Peer dies immediately when receiving a bad message.
[0.9.1] - 2018-10-18
Changed
- Keep track of last synced header from a peer to avoid endless loops on large reorgs.
[0.9.0] - 2018-10-17
Changed
- Use an STM listener instead of a publisher for the node API.
[0.8.2] - 2018-10-17
Added
- Expose
ChainMessage
andManagerMessage
types fromHaskoin.Node
module.
[0.8.1] - 2018-10-11
Changed
- Corrected documentation for
killPeer
function. - Leave time out of logic code.
[0.8.0] - 2018-10-09
Changed
- Peers are now killed directly instead of through peer manager.
Removed
- Chain no longer needs peer manager.
[0.7.2] - 2018-10-09
Added
- Compatibility with base 4.12.
Changed
- Update base to 4.9.
[0.7.1] - 2018-10-09
Added
- Allow to easily obtain a peer’s publisher.
[0.7.0] - 2018-10-09
Added
- Versioning for chain and peer database.
- Automatic purging of chain and peer database when version changes.
- Add extra timers.
- Add publishers to every peer.
Changed
- Full reimplementation of node API.
- Simplify peer selection and management.
- Merge manager and peer events.
- Rename configuration variables for node.
- Separate logic from actors for peer manager and chain.
Removed
- Remove irrelevant fields from peer information.
- Remove unreliable peer block head tracking.
- Remove dependency on deprecated binary conduits.
- Remove Bloom filter support from manager.
- Remove unreliable peer request tracking code.
- Remove separate manager events.
[0.6.1] - 2018-09-14
Changed
- Fix bug where peer height did not update in certain cases.
[0.6.0] - 2018-09-14
Added
- Documentation everywhere.
Changed
- Make compatible with NQE 0.5.
- Use supervisor only in peer manager.
- API quality of life changes.
- Exposed module is now only
Haskoin.Node
.
Removed
- No more direct access to internals.
[0.5.2] - 2018-09-10
Changed
- Improve dependency definitions.
[0.5.1] - 2018-09-10
Changed
- Dependency
sec256k1
changes tosecp256k1-haskell
.
[0.5.0] - 2018-09-09
Added
- New
CHANGELOG.md
file. - Use
nqe
for concurrency. - Peer discovery.
- RocksDB peer and block header storage.
- Support for Merkle blocks.
Changed
- Split out of former
haskoin
repository. - Use hpack and
package.yaml
. - Old
haskoin-node
package now renamed toold-haskoin-node
and deprecated.
Removed
- Removed Old Haskoin Node package completely.
- Removed Stylish Haskell configuration file.
- Remvoed
haskoin-core
andhaskoin-wallet
packages from this repository.