Skip to content

Commit 62f7ee2

Browse files
committed
Two new articles (progress report and dev release announcements) and fixed docs nav bar link
1 parent e2cc318 commit 62f7ee2

File tree

3 files changed

+91
-4
lines changed

3 files changed

+91
-4
lines changed

src/content/post/posts2025.swift

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,90 @@
1+
let post14 = Post("/post/2025-09-18-progress-report", "Progress Report (September 2025)", "2025-09-18T12:00:00Z", .announcements) { """
2+
3+
The last 3 months of Swift Bitcoin development have been intense as we advance firmly towards testnet compatibility and a stable public API.
4+
5+
# Project Updates
6+
7+
Our primary goal laid out back in June was to start syncing the "testnet" blockchain. The consensus parameters for "Testnet 4" were configured [#379](https://github.com/swift-bitcoin/swift-bitcoin/pull/379) and all special rules of BIP94 were implemented [#406](https://github.com/swift-bitcoin/swift-bitcoin/pull/406).
8+
9+
A [guide](https://swiftbitcoin.org/docs/documentation/bitcoin/testnet) was written to facilitate running/testing out Swift Bitcoin alongside a controlled _dockerized_ Core instance. The configuration file format and the daemon's command line arguments were improved to accept a log level and the all important chain selection (network) value [#385](https://github.com/swift-bitcoin/swift-bitcoin/pull/385) [#403](https://github.com/swift-bitcoin/swift-bitcoin/pull/403).
10+
11+
During the initial synchronization attempts multiple issues and missing functionality were identified and subsequently fixed. Some of the more relevant fixes are:
12+
13+
- Missing persistent block undo data [#420](https://github.com/swift-bitcoin/swift-bitcoin/pull/420)
14+
- Lack of headers-first IBD strategy [#416](https://github.com/swift-bitcoin/swift-bitcoin/pull/416)
15+
- Poor support for chain reorganizations [#430](https://github.com/swift-bitcoin/swift-bitcoin/pull/430)
16+
- Incomplete time-lock implementation [#443](https://github.com/swift-bitcoin/swift-bitcoin/pull/443)
17+
- Incomplete implementation of BIP 130 [#408](https://github.com/swift-bitcoin/swift-bitcoin/pull/408)
18+
- Anchor outputs and several consensus related bug fixes [#414](https://github.com/swift-bitcoin/swift-bitcoin/pull/414)
19+
20+
Performance and traceability was also proven to be an area in need of focus with many improvements and refactors affecting file system, database persistence and networking:
21+
22+
- Re-implementation of LMDB bindings using non-copyable types [#381](https://github.com/swift-bitcoin/swift-bitcoin/pull/381)
23+
- Move block validation to a concurrent background queue [#422](https://github.com/swift-bitcoin/swift-bitcoin/pull/422)
24+
- Upgraded `libsecp256k1` integration [#421](https://github.com/swift-bitcoin/swift-bitcoin/pull/421)
25+
26+
On the library side of things the public API was completely streamlined and documented [#374](https://github.com/swift-bitcoin/swift-bitcoin/pull/374) [375](https://github.com/swift-bitcoin/swift-bitcoin/pull/375). A pre-release build was issued and submitted to the [Swift Package Index](https://swiftpackageindex.com/swift-bitcoin/swift-bitcoin) for publication with new unified [DocC documentation](https://swiftpackageindex.com/swift-bitcoin/swift-bitcoin/0.1.1/documentation) for users and automatically generated developer documentation. An announcement was made on the [Swift Forums](https://forums.swift.org/t/swift-bitcoin-full-node-library/75431/9) as well as on social media in an effort to promote collaboration.
27+
28+
A [project board](https://github.com/orgs/swift-bitcoin/projects/2) was set up 3 months ago to track all work items covered by the [OpenSats grant](https://opensats.org/blog/twelfth-wave-of-bitcoin-grants#swift-bitcoin) commitment in real time. As of this write up, over 50 work items have been completed while about 25 items remain either in backlog or in progress with more to be added in the upcoming weeks. The project itself has over [80 recorded GitHub Issues](https://github.com/swift-bitcoin/swift-bitcoin/issues).
29+
30+
# Plans for the remainder of the year
31+
32+
For what's left of 2025 the main objectives continue to be:
33+
34+
1) Bitcoin Node (`bcnode`) support of Testnet 4 which includes initial block download, keeping up with new blocks, handling reorgs and relaying transactions.
35+
2) Bitcoin Utility (`bcutil`) capabilities to verify the correct operation of node instances via RPC commands and off-chain operations. This includes listing recorded reorgs and submitting raw transactions.
36+
3) Library API covering all base bitcoin protocol and wallet functionality in a way that is fully compatible with Testnet 4. For this we need to keep making sure we follow the official Swift Language [API Design Guidelines](https://www.swift.org/documentation/api-design-guidelines/) in order to provide a solid 1.0 release that's both idiomatic and ergonomic.
37+
38+
We want users to be able to download Swift Bitcoin (Linux Docker images and binaries [already being provided](https://hub.docker.com/r/swiftbitcoin/swift-bitcoin) with each release) and have a testnet instance that they can sync and interact in a way that's similar to Bitcoin Core. By the same token we want developers to use Swift Bitcoin in their apps whether it be building a simple wallet or an e-commerce site. We already received some positive feedback (privately and publicly on our [X account](https://x.com/SwiftBitcoinOrg) from daredevil iOS developers integrating the library into experimental products. We'd like to give those developers a proper release and a chance to contribute back in a positive feedback loop.
39+
40+
To that effect here's a few GitHub issues to highlight from the [Kanban board](https://github.com/orgs/swift-bitcoin/projects/2):
41+
42+
- [Fully sync live Testnet 4 chain](https://github.com/swift-bitcoin/swift-bitcoin/issues/405)
43+
- [RPC command to get active and historical chain tips](https://github.com/swift-bitcoin/swift-bitcoin/issues/429)
44+
- [Relay blocks and transactions to relevant peers](https://github.com/swift-bitcoin/swift-bitcoin/issues/427)
45+
- [Testnet 4 seed nodes](https://github.com/swift-bitcoin/swift-bitcoin/issues/401)
46+
47+
Behind the scenes on the purely technical side we'd also like to integrate Apple's [Swift Metrics](https://github.com/apple/swift-metrics) to get a better picture of the network client's behavior and operation through either Open Telemetry or Prometheus. There's also a new official [binary parser](https://github.com/apple/swift-binary-parsing) that might help us boost our serialization/deserialization code.
48+
49+
One additional requirement will be to start incorporating many of the new [Swift 6.2](https://www.swift.org/blog/swift-6.2-released/) (released September 16, 2025) features that can greatly impact our package's performance like [inline arrays](https://developer.apple.com/documentation/swift/inlinearray) and spans. A full refactor of the affected code may not be possible but a partial implementation should be sufficient to make a dent in performance.
50+
""" }
51+
52+
let post13 = Post("/post/2025-09-15-initial-developer-release", "Initial Developer Release", "2025-09-15T12:00:00Z", .announcements) { """
53+
Our initial developer release version 0.1.0 is out! While this is a pre-release build with not-yet-stable API indicated by the zero-major [SemVer](https://semver.org/#spec-item-4) prefix we feel that the project has matured enough to start thinking about a 1.0 roadmap.
54+
55+
# Release Notes
56+
57+
The following is taken almost verbatim from the GitHub [Release Notes](https://github.com/swift-bitcoin/swift-bitcoin/releases/tag/0.1.0):
58+
59+
Swift Bitcoin is a framework for integrating the Bitcoin protocol into any software solution. From light wallets to hardware signing devices and from e-commerce sites to full nodes, Swift Bitcoin provides modular APIs to access just the bits and pieces you require to build your product.
60+
61+
The library can be simply imported using the umbrella module `Bitcoin` or any of the available submodules for cryptographic functions, base protocol, wallet utilities, blockchain and node services, Miniscript or Partially Signed Transactions.
62+
63+
Additionally Swift Bitcoin provides two executable targets:
64+
65+
Bitcoin Node (bcnode) – A network client implementation with full node capabilities launched as a UNIX service daemon.
66+
Bitcoin Utility (bcutil) – A command-line utility for off-chain operations as well as querying and controlling daemon instances.
67+
68+
Docker images for this tools are provided on [Docker Hub](https://hub.docker.com/repository/docker/swiftbitcoin/swift-bitcoin) and GitHub Package Registry.
69+
70+
During the initial development phase, 0.x releases will continue to be issued semi-regularly trying to minimize breaking changes. Development has already been going on for over 2 years so there's a certain maturity attained but also a few known issues and several estimated unknown issues.
71+
72+
> Important
73+
> As of 0.1.0 Swift Bitcoin only supports `regtest` and `testnet4` networks. We highly recommend not using it for anything that touches mainnet until version 1.0 is released.
74+
75+
Current documentation and additional information can be found on [swiftbitcoin.org](/info). Any feedback will be greatly appreciated. Contributions are also welcome.
76+
77+
# Swift Package Index
78+
79+
The package was submitted to the [Swift Package Index](https://swiftpackageindex.com/swift-bitcoin/swift-bitcoin) for publication along with new unified [DocC documentation](https://swiftpackageindex.com/swift-bitcoin/swift-bitcoin/0.1.1/documentation) for users and automatically generated developer [documentation](/docs/documentation/bitcoin/).
80+
81+
# Promotion
82+
83+
An announcement was made on the [Swift Forums](https://forums.swift.org/t/swift-bitcoin-full-node-library/75431/9) as well as on [social media](https://x.com/SwiftBitcoinOrg) in an effort to promote collaboration.
84+
85+
As always a call out to all Swift Server developers out there – as well as Bitcoin and Swift app developers – that may be interested in building what could eventually become Swift's reference implementation for the bitcoin protocol to reach out. There's unlimited possibilities for project expansion and a lot of work left to do!
86+
""" }
87+
188
let post12 = Post("/post/2025-06-17-start-testnet4-effort", "Start of Testnet 4 Compatibility Effort", "2025-06-17T12:00:00Z", .announcements) { """
289
Testnet compatibility is a mandatory milestone for any piece of Bitcoin-related software aiming to eventually reach production stage.
390

src/main.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import SwiftySites
22

33
let posts = [
4-
post01, post02, post03,
5-
post04,
6-
post05, post06, post07, post08, post09, post10, post11, post12
4+
post01, post02, post03, // 2023
5+
post04, // 2024
6+
post05, post06, post07, post08, post09, post10, post11, post12, post13, post14 // 2025
77
]
88

99
let site = Site(

src/partials/navigationPartial.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func navigationPartial(_ page: Page?) -> String { """
1616
"""
1717
})
1818
<li>
19-
<a href="/docs/documentation/bitcoin/">Docs</a>
19+
<a href="/docs/documentation/">Docs</a>
2020
</li>
2121
\(/* External link */"")<li>
2222
<a href="https://github.com/swift-bitcoin/swift-bitcoin">Code</a>

0 commit comments

Comments
 (0)