Skip to content

Commit 351d3d6

Browse files
committed
New post
1 parent b3224bb commit 351d3d6

File tree

4 files changed

+77
-43
lines changed

4 files changed

+77
-43
lines changed

.swiftpm/xcode/xcshareddata/xcschemes/craigwrong.xcscheme renamed to .swiftpm/xcode/xcshareddata/xcschemes/generate.xcscheme

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1320"
4-
version = "1.3">
3+
LastUpgradeVersion = "1500"
4+
version = "1.7">
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES">
@@ -14,9 +14,9 @@
1414
buildForAnalyzing = "YES">
1515
<BuildableReference
1616
BuildableIdentifier = "primary"
17-
BlueprintIdentifier = "swiftysites"
18-
BuildableName = "swiftysites"
19-
BlueprintName = "swiftysites"
17+
BlueprintIdentifier = "generate"
18+
BuildableName = "generate"
19+
BlueprintName = "generate"
2020
ReferencedContainer = "container:">
2121
</BuildableReference>
2222
</BuildActionEntry>
@@ -26,17 +26,15 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29-
shouldUseLaunchSchemeArgsEnv = "YES">
30-
<Testables>
31-
</Testables>
29+
shouldUseLaunchSchemeArgsEnv = "YES"
30+
shouldAutocreateTestPlan = "YES">
3231
</TestAction>
3332
<LaunchAction
3433
buildConfiguration = "Debug"
3534
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
3635
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
3736
launchStyle = "0"
3837
useCustomWorkingDirectory = "YES"
39-
customWorkingDirectory = "/Users/d/Developer/craigwrong/website"
4038
ignoresPersistentStateOnLaunch = "NO"
4139
debugDocumentVersioning = "YES"
4240
debugServiceExtension = "internal"
@@ -45,18 +43,12 @@
4543
runnableDebuggingMode = "0">
4644
<BuildableReference
4745
BuildableIdentifier = "primary"
48-
BlueprintIdentifier = "swiftysites"
49-
BuildableName = "swiftysites"
50-
BlueprintName = "swiftysites"
46+
BlueprintIdentifier = "generate"
47+
BuildableName = "generate"
48+
BlueprintName = "generate"
5149
ReferencedContainer = "container:">
5250
</BuildableReference>
5351
</BuildableProductRunnable>
54-
<CommandLineArguments>
55-
<CommandLineArgument
56-
argument = "--clean"
57-
isEnabled = "YES">
58-
</CommandLineArgument>
59-
</CommandLineArguments>
6052
</LaunchAction>
6153
<ProfileAction
6254
buildConfiguration = "Release"
@@ -68,9 +60,9 @@
6860
runnableDebuggingMode = "0">
6961
<BuildableReference
7062
BuildableIdentifier = "primary"
71-
BlueprintIdentifier = "swiftysites"
72-
BuildableName = "swiftysites"
73-
BlueprintName = "swiftysites"
63+
BlueprintIdentifier = "generate"
64+
BuildableName = "generate"
65+
BlueprintName = "generate"
7466
ReferencedContainer = "container:">
7567
</BuildableReference>
7668
</BuildableProductRunnable>

src/content/post/postIntroducingSwiftBitcoinLibrary.swift

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/content/post/posts2023.swift

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
let post02 = Post("/post/2023-10-03-swift-bitcoin-roadmap", "Swift Bitcoin Roadmap", "2023-10-03T12:00:00Z", .announcements) { """
2+
3+
The ultimate goal for Swift Bitcoin is to become the most comprehensive SDK for bitcoin in Swift with features like mempool management, block mining and connectivity via the bitcoin protocol.
4+
5+
The library is being written entirely in Swift. Its only dependency is the official [libsecp256k1](https://github.com/bitcoin-core/secp256k1) for ECDSA and [Schnorr](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki) cryptography.
6+
7+
The library aims to provide full support for bitcoin [transactions](https://en.bitcoin.it/wiki/Transaction), [SCRIPT](https://en.bitcoin.it/wiki/Script), [segregated witness](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki), [taproot](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki), [tapscript](https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki) and more.
8+
9+
# Development Roadmap
10+
11+
We want the library to be fully tested from the beginning. When available we will use test vectors from the BIPs and reference implementations or port tests directly from [Bitcoin Core](https://bitcoincore.org).
12+
13+
This implies a slow and steady progress but the end result will be a secure and robust product on which developers can base their solutions.
14+
15+
Below is a rough roadmap of the order in which features could be integrated.
16+
17+
- Full transaction model with script, lock-time, input sequence and witness.
18+
- Transaction serialization and deserialization.
19+
- SCRIPT interpreter loop.
20+
- Transaction signature hash, signature [signature hash types](https://river.com/learn/terms/s/sighash-flag/) and signature generation (ECDSA).
21+
- [`OP_CHECKSIG`](https://en.bitcoin.it/wiki/OP_CHECKSIG).
22+
- Transaction verifying for Pay-to-Public-Key (`P2PK`) and Pay-to-Public-Key-Hash (`P2PKH`).
23+
- [`OP_RIPEMD160`](https://en.bitcoin.it/wiki/RIPEMD-160), `OP_SHA256`, `OP_HASH256`, `OP_HASH160` and other cryptographic operations.
24+
- `Base58` and [`Base58Check`](https://en.bitcoin.it/wiki/Base58Check_encoding) address encoding/decoding.
25+
- [`OP_CHECKMULTISIG`](https://en.bitcoin.it/wiki/OP_CHECKMULTISIG).
26+
- Transaction verifying [`P2SH`](https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki).
27+
- [Relative lock-time](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki).
28+
- [`OP_CHECKSEQUENCEVERIFY`](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki).
29+
- [`OP_CHECKLOCKTIMEVERIFY`](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki).
30+
- [`NULLDUMMY`](https://en.bitcoin.it/wiki/BIP_0147).
31+
- Other script operations (arithmetic, stack, …).
32+
- [Segwit](https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki) transaction verifying `P2WPKH`, `P2WSH`, `P2SH-P2WPKH`, `P2SH-P2WSH`.
33+
- [`Bech32`](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki) address encoding/decoding.
34+
- Transaction Schnorr signature generation.
35+
- Pay-to-Taproot [`P2TR`](https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki) (key-hash spends only).
36+
- Transaction signing for all standard scripts.
37+
- [`Bech32m`](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki) address encoding/decoding.
38+
- `OP_CHECKSIGADD` (witness V1 script).
39+
- Tapscript transactions.
40+
41+
""" }
42+
43+
let post01 = Post("/post/2023-07-25-introducing-the-swift-bitcoin-library", "Introducing: The Swift Bitcoin Library", "2023-07-25T12:00:00Z", .announcements) { """
44+
45+
[Swift Bitcoin](https://github.com/swift-bitcoin/swift-bitcoin) aka _The Swift Bitcoin Library_ is a new project intended for Swift developers who want to build a bitcoin product.
46+
47+
# Apple Platforms
48+
49+
Being the language of the App Store it should come as a surprise that xOS bitcoin apps need to rely on non-Swift libraries for their implementation.
50+
51+
# Server Side
52+
53+
With first-class support for actors and structured concurrency, open-source Swift is more than suitable for building services like full nodes or desktop wallets. Whether running on Linux or on the Mac, a pure Swift package with virtually no additional dependencies is the ideal foundation for green-field software development.
54+
55+
# Bitcoin Core Cryptography
56+
57+
Good bitcoin devs know not to roll their own crypto. That is why Swift Bitcoin leverages the power of Core's `secp256k` library. Thanks to Swift's best-in-class C and C++ interoperability, this integrations is as tight as it can be, leaving no room for devastating errors.
58+
59+
# Development
60+
61+
While the efforts to build out the library are ongoing, a great deal of research has already taken place over the past 12 months. The focus will now switch to ensuring a clear, idiomatic API along with accurate and complete DocC documentation as well as full unit test quality coverage. I will personally do my best to develop the library in the open while accepting help from knowledgable plebs.
62+
63+
""" }

src/main.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import SwiftySites
22

33
let posts = [
4-
postIntroducingSwiftBitcoinLibrary,
4+
post01, post02
55
]
66

77
let site = Site(

0 commit comments

Comments
 (0)