Before Fiber launched on mainnet, its development updates were included in a shared dev log here alongside CKB.
This archive compiles all Fiber-related updates leading up to the mainnet launch, categorized for easier reference.
🎉 Pre-Mainnet Milestones
- Released Fiber v0.4.0 & mainnet deployment 2024-03-05
- Added multi-hop routing support for cross-chain payments 2024-02-19
- Released v0.0.1 2024-12-26
- Fiber’s first version with backward compatibility 2024-12-12
- Integrated Sphinx for onion message obfuscation 2024-10-16
🚀 Features
- Released Fiber v0.4.0 & mainnet deployment https://github.com/nervosnetwork/fiber/releases/tag/v0.4.0
- Added WebSocket interfaces for Fiber nodes to subscribe to invoice/payment state changes: Persist cch state and make cch a standalone service fiber#522
- Introduced Fiber Autopilot, an experimental project for continuous network analysis and peer recommendation: https://github.com/nervosnetwork/fiber-autopilot
- Added multi-hop routing support for cross-chain payments: https://github.com/contrun/fiber/tree/support-fiber-multiple-hops-payment-in-cross-chain-transaction
- Implemented Fiber payment/invoice subscription and Cross-chain hub now uses fiber payment/invoice to drive cross-chain order updates
- Fiber has seen multiple updates, with the latest being v0.3.1: https://github.com/nervosnetwork/fiber/releases
- Default funding lock: feat: add default funding lock script fiber#442
- Released v0.0.1 Release v0.0.1 · nervosnetwork/fiber
- Finished refactoring of the gossip message protocol: Refactor gossip protocol fiber#308
2024-12-12 The first version of Fiber Network with backward compatible is set for release by the end of this month. We’re currently testing and fixing.
- Finished the audit of Fiber contract.
- A fix for Musig2VerifyError issues via Rewrite channel actor state tlc operations fiber#341
- Onion encryption Setup onion error packet fiber#354 for improved privacy in error handling.
- Type safe onion packet feat: use type safe onion packet fiber#358
2024-11-27 No updates
2024-10-30 No updates
- Integrated Sphinx for onion message obfuscation: integrate sphinx for onion message obfuscation fiber#181
- Fiber wallet encapsulation and external entity delegation: https://hackmd.io/@doitian/rygDvLKwCA
- Added ability to specify the lock script for closing the channel when opening the channel: feat: add shutdown_script to rpc fiber#210
- Added tests for Fiber node network info sync functionality: Add some unit tests for network syncing fiber#205
- Implemented payment session and multi-hop HTLC error handling: Payment session and error handling on onion packet forwarding fiber#191
- Add payee public key for new_invoice by default fiber#160
- Keysend mode added: Add keysend mode in send_payment fiber#159
- Network graph RPC added: Add network graph PRC fiber#182
- Onion message decryption implemented: peeling: decrypt and construct the packet for the next hop cryptape/fiber-sphinx#2
- A specification of onion message released: https://github.com/cryptape/fiber-sphinx/blob/develop/docs/spec.md
- Onion Message encryption implementation feat: packet creation cryptape/fiber-sphinx#1
- Network status synchronization in fiber nodes Add network graph, broadcasting, route path and multi-hop payment fiber#152
2024-09-04 No updates
- Enabled broadcasting of channel and node information for multihop payments. [WIP] Broadcast channel,node information for multihop payment fiber#144
- Completed contract development based on the Daric protocol feat: refactor commitment lock to using daric protocol fiber-scripts#10
- Active development on the network graph component https://github.com/nervosnetwork/fiber/tree/multihop-graph
- Developed version based commitment tx verification feat: version based commitment tx verification fiber-scripts#8
2024-07-22](https://github.com/nervosnetwork/ckb/discussions/4534) No updates
- Improved commitment fees calculation and refined shutdown logic: Add auto shutdown when shutdown tx fee is ok fiber#103
- Added a whitelist config for UDT allowed in current CFN (CKB Fiber Network, previously CKB Payment Channel Network) node: feat: Add UDT whitelist fiber#78
🦾 Improvements
- Addressed a pending offered TLC amount calculation issue in CCH: Confirmed failed tlc should not in check limit and build settlement outputs fiber#528
- Fixed node restart issues during critical operations: Add ui test for send payment middle hops restarting fiber#512 Fix shutdown issues fiber#516
- Added extra fields for channel RPC: Add extra fields for channel RPC fiber#514
- Refactoring watchtower: Refactor watchtower fiber#524
- Implementing incremental funding tx construction: feat: ensure funding tx is built incrementally fiber#517
- Refactoring Funding Tracing Refactor Funding Tracing fiber#519
- Updating live cells to exclude those used by ongoing funding tx Exclude live cells used by ongoing funding tx fiber#521
- Pre-Ready Channels Management design finished
- Added multi-hop routing support for cross-chain payments: https://github.com/contrun/fiber/tree/support-fiber-multiple-hops-payment-in-cross-chain-transaction
- Implemented Fiber payment/invoice subscription; Cross-chain hub now updates orders via fiber payment/invoice
- Design updates:
- Pathfinding improvements:
- Removed some duplicated logics: Minimize work done by
build_route
fiber#471 - Use private channel hop hints: Handle private channel hop hints fiber#487
- Add unit test for last hop stopped fiber#460
- Fix issue that the failure of middle hop tlc forwarding does not returned fiber#457
- Removed some duplicated logics: Minimize work done by
- Message broadcast improvements:
- Save our own broadcast message directly and save raw gossip message from peers to memory first fiber#434
- Send channel tlc info directly to counterparty and update network graph with owned channel information fiber#446
- Rebase some conflicting PRs:: Query missing broadcast messages from peers fiber#428
- Migration updates:
- Minor fixes:
- Make number of active/passive syncers configurable fiber#429
- Handle SIGTERM on unix-like systems fiber#472
- Don't return error while handling actor messages fiber#462
- Cleanup preimage after tlc is settled fiber#454
- Fix payment history assertion crash fiber#484
- chore: Fix RPC document issues fiber#467
- Unified cryptographic signing utilities: Unify various cryptography functions fiber#420
- Unit tests for gossip message processing: Add some unit tests for channel related gossip message processing fiber#418
- Simplified and cleaned up code for better readability: chore: simplify fn prune_messages_to_be_saved fiber#414 chore: code cleanup fiber#417
- TLC ACK operation revisited: Tlc operations wait dual ack fiber#416
- Retryable forwarding TLC introduced: Add retryable forwarding tlc fiber#440
- Ongoing extensive tests to ensure Fiber’s stability
2024-12-26 No updates
2024-12-12 No updates
- Channels are now public by default. fix: channel should be public by default fiber#331
- Basic database migration has been added to the node, smoothing the updating process. Add database migration fiber#315
- More robust validation of TLC while forwarding payments has been added. Add expiry check for rpc and HTLC forwarding fiber#317
- Added
allow_self_payment
for send payment: Add allow_self_payment for send_payment fiber#282 - Automatic initialization for better dev experience: Initialize automatically for the first time fiber#262
- Added a check to ensure the CKB amount is within the
u64::max
range to prevent errors when opening a channel: check CKB amount range when open channel fiber#256
- Improved unit test related to network syncing: Add some unit tests for network syncing fiber#205
- Enhanced CI: Use random port for github action to resolve unstable CI fiber#179 Fix an possible test failure because of RepeatedConnection fiber#178
2024-09-13 No updates
2024-09-04 No updates
2024-08-21 No updates
2024-08-02 No updates
- Open issue: Consider the tradeoff of broadcasting channel balance: Consider the tradeoff of broadcasting channel balance fiber#138
- Removed log macros and fixed log node prefix: Remove log macros and fix log node prefix fiber#127
- Removed funding source lock script: Remove funding source lock script fiber#135
- Prevented channel status updates when an error occurs: Do not update channel status before error fiber#131
- Added limits check for Time Lock Contracts: Add limits check for tlcs fiber#140
- Enabled using SHA256 in Hashed Timelock Contract (HTLC) for BTC interoperability: feat: allow sha256 for HTLC fiber#105
- Added the option to keep closed channels: Add option to keep closed channels fiber#124
- A few improvements, including retransmission of messages that may have been lost after reconnection, enhancements to logging, and support for different hash algorithms (compatible with Lightning Network):
- Overhauled the internal data representation of time locked contracts (TLCs) in channel states, with a few issues fixed:
- Properly handle inconsistent view of active tlcs while constructing commitment transaction for different parties fiber#73
- Refactor TLCs related fields in channel state fiber#47
- Should not remove TLC from channel state even if valid RemoveTlc message from peer received fiber#30
- Save witness scripts for old commitment transaction fiber#31
- Enhanced the process for deriving secrets for each commitment transaction. Derive secrets from commitment points fiber#96
- Various specification documents have been updated:
- A demo for cross-chain transfer is now available for enthusiasts to try: simple cross-chain hub demo fiber#46
- Optimized transaction building by only using essential cell dependencies: Find the correspending cell deps for script fiber#60
🛠️ Fixes
2024-03-05 No updates
- fix: resolve force close amount bug fiber#505
- Fix Musig2RoundFinalizeError caused by concurrency problem fiber#493
- Fix disable channel and private channel send payment issue fiber#502
- chore: fix clippy and enable it in CI fiber#504
- chore: code refactor and trivial fixes on doc fiber#509
- chore: remove unused RotateOutboundPassiveSyncingPeers in gossip fiber#510
2025-01-22 No updates
- Fixed missing broadcast messages during a query request: Query missing broadcast messages from peers fiber#428
- Cached
ChannelAnnoucement
timestamp to reduce round-trips with CKB: Save our own broadcast message directly and save raw gossip message from peers to memory first fiber#434 - Made CI more resilient with configurable syncer count: Make number of active/passive syncers configurable fiber#429
- Fixed CI failure by propagating panics: Panick the whole program when actor panick fiber#435
- Adopted Molecule for deterministic hashing: fix: deterministically hash should use molecule fiber#415
- Adopted Molecule for serializing relevant data structures: Use molecule for hopdata and tlc_err fiber#425
- Adjusted gossip to ignore private addresses: fix: gossip actor and graph should ignore private address fiber#421
- Allowed private channels as sources: fix: use private channel as source should be ok fiber#426
- Properly set inbound channel actor names: fix: inbound channel actor name fiber#439
- Regulated field names in RPC: [BREAKING CHANGE] fix: unify the fields name in rpc fiber#441
- Cleaned up channel RPC and fixed self payment when both parties have 0 remote balance: Add custom hop hints and fix self payment fiber#432
- Resolved a self payment error: fix a bug in direct channel fiber#411
- Ensured the network graph updated properly when a message is received: Retry all payment session with actor message fiber#430
- Updated network graph when a channel is closed: Network graph should sync up when channel closed fiber#412
- Fix tlc space issue caused by remote_nonces and remote_commitment_points fiber#374
- Add limit parameters for channel in each side fiber#385
- Refactor tlc forwarding and add more unit tests fro error handling fiber#388
- Improve path finding and send payment error handling fiber#397
- Fix path find fee rate issue from source node fiber#382
- Fix onion hop length limit issue fiber#383
- Fix udt overflow issue caused by u64 fiber#398
- Use liquid capacity for channel gossip information fiber#400
- Completed Onion error encryption Onion error encryption fiber#356
- Fix channel balance issue caused by remove tlc failure fiber#368
- chore: add config doc fiber#384
- Fix onion hop length limit issue fiber#383
- Fix path find fee rate issue from source node fiber#382
- Fix send payment fee overflow issue fiber#380
- chore: cleanup unsed code in migration fiber#378
- cleanup AddTlcCommand fiber#365
- Fix channel state issue in RPC fiber#350
- (chore): code refactoring for remove_tlc_with_reason fiber#379
- Private addresses are now filtered out by default while broadcasting
NodeAnnouncement
. chore: do not announce private addresses by default fiber#325 - The calculation of the size of shutdown Script was corrected. fix: resolve shutdown script size bug fiber#338
- An issue related to sending payments to oneself was fixed. Fix pay self issue in network graph path finding fiber#302
- A bug causing incorrect fee calculation while building payment route was fixed. Fix build_router fee rate issue fiber#323
- Cross chain hub E2E test: fix cross chain hub e2e test fiber#275
- Commitment tx capacity issue: fix: commitment tx capacity is wrong fiber#269
- Bug fixes:
- refactor: rename node-x fiber#186
- refactor: last_update_message should not be none fiber#188
- refactor: remove some debug / copy fiber#206
- Add a peer store to network actor fiber#208
- Process owned channels in network graph fiber#219
- Don't panic while send transaction failed fiber#217
- Fix send payment amount check issue and add balance check in e2e fiber#211
- Add more details for network graph rpc fiber#218
- Added coverage test reports:
- Correctly transition state from NegotiatingFunding to CollaboratingFundingTx fiber#162
- Fix node announcement version fiber#167
- Fix last channel update message not saved to graph fiber#180
- Don't panic when channel id not found for channel outpoint fiber#184
- Send NodeAnnouncement messages on peer connected instead on startup fiber#166
- Fix bugs in channel announcement fiber#158
- Fix the ckb amount check issue for UDT fiber#164
- Fix UDT auto accept funding amount issue fiber#171
- Fix the UDT issues in send_payment fiber#176
- Use the source funding lock script as default shutdown close script fiber#174
- Add payee public key for new_invoice by default fiber#160
- Fixed issues in multi-hop payment process: Add network graph, broadcasting, route path and multi-hop payment fiber#152
2024-09-04 No updates
2024-08-21 No updates
2024-08-02 No updates
- Added a unit test for revoking an older commitment transaction: Test revoking old commitment tx fiber#133
- Fixed
handle_add_tlc_command
andhandle_remove_tlc_command
for response: Fix handle_add_tlc_command and handle_remove_tlc_command for response fiber#134
2024-07-11 No updates
2024-06-26 Multiple bugs squashed:
- Various fee and channel balance partition issues fixed. Fix channel amount and fee issues fiber#69
- A problem of incompatibility in SUDT and xUDT contract that resulting in CFN contracts not working in xUDT fixed. fix: try to resolve xudt compatibility issue fiber-scripts#5
- Fix inputs of transactions that consume funding cell
- Fix wrong order of first second commitment point
- Fix off by one error in commitment number
- Fix get sent/received tlc value
⏳ In Pipeline
- Expand channel and router RPC capabilities
- Conduct Fiber autopilot simulation and testing
- Status management on restart
- Release mainnet version
- Addressing the reestablishment of Fiber channels in intermediate states following a node restart: [send_payment] return Musig2RoundFinalizeError when mid node update_channel fiber#480
- Fiber 1.0.0 release is in progress. Please stay tuned!
- Continue refactoring the gossip protocol
- Resolving TLC operation issue caused by peer not waiting ACK from sender
- Excluding used Cells during concurrent funding requests: Cells exclusion for active funding tx negotiation fiber#74
- A more robust gossip message protocol is coming. Refactor gossip protocol fiber#308
- Exclude used Cells during concurrent funding requests: Cells exclusion for active funding tx negotiation fiber#74
- Save shared secret for forwarding the onion packet, and use it to encrypt the backwarding error packets. Onion error encryption fiber#356
- Limit the size of
remote_commitment_points
andremote_nonces
Fix tlc space issue caused by remote_nonces and remote_commitment_points fiber#374
- Excluding used Cells during concurrent funding requests: Cells exclusion for active funding tx negotiation fiber#74
- Integrating Fiber Sphnix error messages for better payment error handling Integrate fiber sphinx to return errors of payment requests fiber#198
- A more robust gossip message protocol is coming. Refactor gossip protocol fiber#308
- Issues occurred while adding invalid TLCs causing signature verification failures are identified and planed to be fixed. [send_payment] Call send_payment twice at the same time cause Musig2VerifyError fiber#245
2024-10-30 No updates
- Fiber wallet encapsulation and external entity delegation
- Korean community AMA
- Add more comprehensive test coverage and continue refining the codebase
2024-09-29 No updates
- Preparing for the second release of the Fiber testnet.
- Working on Onion Message decryption and finalizing its specification.
- Advancing Fiber Onion Message protocol (Sphinx) research and implementation: feat: packet creation cryptape/fiber-sphinx#1
- Expanding scenarios for triggering message broadcasting, and initial implementation of message processing logic required for node synchronization network status: https://github.com/contrun/fiber/commits/multihop-graph/
- Active development on Fiber payment route
- Completion of the node-side implementation of the Watchtower module
- Keep working on pathfinding
- Support multi-hop cross-chain transactions
- Document how to route payments
- Implement Onion Message (Sphinx)
- Design and implement node-side work of the watchtower module
- Complete the watchtower solution based on the Daric scheme
- Begin working on the fiber broadcasting and pathfinding components
- Design and implementation of WatchTower module
2024-07-11 No updates
- Current channel state is removed before shutdown transaction is confirmed. A fix for that is in preparation. Channel state should only be removed when shutdown transaction has been confirmed fiber#86
- More unit tests for CKB Fiber Network are planned. Add test to check that we have the correct amounts of asset for both parties fiber#92 Add an unit test to test that we can correctly revoke a commitment transaction fiber#97
- Improvements for CFN funding implementation are planned. Cells exclusion for active funding tx negotiation fiber#74 Funding tx negotiation verification fiber#75
- Channel re-establishment when peers are reconnected to each other is ready for review. feat: retransmission for tlc fiber#89