Skip to content

Instantly share code, notes, and snippets.

View 1amhesus's full-sized avatar
๐ŸŽฏ
Focusing on Bitcoin and Stoic Life

Hesus Lim 1amhesus

๐ŸŽฏ
Focusing on Bitcoin and Stoic Life
View GitHub Profile
@1amhesus
1amhesus / SwiftSync.md
Created January 5, 2026 18:14 — forked from RubenSomsen/SwiftSync.md
SwiftSync - smarter synchronization with hints

SwiftSync

Near-stateless, fully parallelizable validation of the Bitcoin blockchain with hints about which outputs remain unspent. All other inputs/outputs are efficiently crossed off inside a single hash aggregate that only reaches zero if validation was successful and the hints were correct.

15-minute talk summarizing the protocol

Introduction

Validation is at the heart of Bitcoin. Any improvements in validation speed will have a direct impact on the scalability of the system, including everything that is built on top of it. For this reason improving validation performance may be one of the most important things we can do.

Caveat Emptor

I (instagibbs) was asked to draft a statement, I feel this is a fair summation of the project's direction. I might be wrong

Retiring the 80-Byte OP_RETURN Limit

Bitcoin Coreโ€™s next release will, by default, relay and mine transactions whose OP_RETURN outputs exceed 80 bytes and allow any number of these outputs. The long-standing cap, originally a gentle signal that block space should be used sparingly for non-payment proof of publication data, has outlived its utility.

Add

Utreexo accumulator is a collection of proper merkle trees. All the merkle trees have 2 children or none.

Below is an example of adding 7 leaves to the tree. You can run the code I used to generate this at https://go.dev/play/p/um5263SDk59

This is an accumulator with 1 leaf. It has 1 root, which is also a leaf.

๋ณธ ๋ฌธ์„œ๋Š” Ruben Somsen์— ์˜ํ•ด ์ž‘์„ฑ๋œ "์†Œํ”„ํŠธ์ฒด์ธ: ์ž‘์—…์ฆ๋ช…(PoW) ์‚ฌ๊ธฐ ์ฆ๋ช…์„ ํ†ตํ•œ ์†Œํ”„ํŠธ ํฌํฌ๋กœ์„œ์˜ ์‚ฌ์ด๋“œ์ฒด์ธ(Softchains: Sidechains as a Soft Fork via Proof-of-Work Fraud Proofs)์„ ํ•œ๊ธ€๋กœ ๋ฒˆ์—ญํ•˜์—ฌ ํ•œ๊ตญ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋ณด๋‹ค ํšจ๊ณผ์ ์ธ ๋…ผ์˜ ๋ฐ ํ† ๋ก ์„ ๋งŒ๋“ค์–ด ๋‚˜๊ฐ€๊ธฐ ์œ„ํ•ด ๋ฒˆ์—ญ๋œ ๋ฌธ์„œ์ž„์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ์ฒด์ธ: ์ž‘์—…์ฆ๋ช… ์‚ฌ๊ธฐ ์ฆ๋ช…์„ ํ†ตํ•œ ์†Œํ”„ํŠธ ํฌํฌ๋กœ์„œ์˜ ์‚ฌ์ด๋“œ์ฒด์ธ

์›๋ž˜ ์ด ๊ธ€์€ ๋น„ํŠธ์ฝ”์ธ ๊ฐœ๋ฐœ์ž ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์— ๊ฒŒ์‹œ๋จ.

์ด ๊ฒŒ์‹œ๋ฌผ์€ ์™„์ „ํžˆ ๋ถ„์‚ฐ๋œ ์–‘๋ฐฉํ–ฅ ํŽ˜๊ทธ ์‚ฌ์ด๋“œ์ฒด์ธ ์„ค๊ณ„๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์‚ฌ์ด๋“œ์ฒด์ธ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์†Œํ”„ํŠธ ํฌํฌ๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ '์†Œํ”„ํŠธ์ฒด์ธ'์ด๋ผ๋Š” ์ด๋ฆ„์ด ๋ถ™์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์ ์ธ ์ธก๋ฉด์€ ๋ชจ๋“  ์†Œํ”„ํŠธ์ฒด์ธ์ด ์ž‘์—…์ฆ๋ช…(PoW) ์‚ฌ๊ธฐ ์ฆ๋ช…(PoW FP)์„ ํ†ตํ•ด ๋ชจ๋“  ์‚ฌ๋žŒ์—

Package Mempool Accept Post

Hi there,

I'm writing to propose a set of mempool policy changes to enable package validation (in preparation for package relay) in Bitcoin Core. These would not be consensus or P2P protocol changes. However, since mempool policy significantly affects transaction propagation, I believe this is relevant for the mailing list.

My proposal enables packages consisting of multiple parents and 1 child. If you develop software that relies on specific transaction relay assumptions and/or are interested in using package relay in the future, I'm very interested to hear your feedback on the utility or restrictiveness of these package policies for your use cases.

A draft implementation of this proposal can be found in [Bitcoin Core PR#22290][1].

๋ณธ ๋ฌธ์„œ๋Š” ๋น„ํŠธ์ฝ”์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ธฐ์—ฌ์ž๋กœ์„œ ๋งˆ์Šคํ„ฐ๋ง ๋น„ํŠธ์ฝ”์ธ(Mastering Bitcoin 3rd Edition) ๋ฐ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๋ฌธ์„œ๋ฅผ ์ „๋ฌธ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๋ฐ์ด๋น„๋“œ ํ•˜๋”ฉ(David Harding)์˜ ์—๋ผํƒ€(errata) ๋ฌธ์„œ๋ฅผ ํ•œ๊ธ€๋กœ ๋ฒˆ์—ญํ•˜๊ณ , ๋น„ํŠธ์ฝ”์ธ ๋ฐฑ์„œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋น„ํŠธ์ฝ”์ธ ๊ตฌํ˜„์ฒด์˜ ๊ณผ๊ฑฐ์™€ ํ˜„์žฌ๋ฅผ ์—ฐ๊ตฌํ•˜๊ณ  ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ ์—ฐ๊ตฌ๊ทธ๋ฃน(Bitcoin Research Team in Orakle@Kaist)์˜ ์—ฐ๊ตฌ ๊ฒฐ๊ณผ๋ฌผ์„ ๊ธฐ์ˆ ๋ฌธ์„œ์˜ ํ˜•ํƒœ๋กœ์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ธฐ์—ฌํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž„์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ด๋น„๋“œ ํ•˜๋”ฉ(David Harding)์˜ ์—๋ผํƒ€(errata) ๋ฌธ์„œ๋Š” ์‚ฌํ† ์‹œ ๋‚˜์นด๋ชจํ† ์˜ ๋…ผ๋ฌธ "๋น„ํŠธ์ฝ”์ธ: Peer-to-Peer ์ „์ž ํ™”ํ ์‹œ์Šคํ…œ"์—์„œ ์•Œ๋ ค์ง„ ๋ฌธ์ œ๋“ค์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ์šฉ์–ด ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ฃผ์„ ๋ฐ ๋…ผ๋ฌธ์—์„œ ์„ค๋ช…๋œ ๋‚ด์šฉ๊ณผ ๋น„ํŠธ์ฝ”์ธ์˜ ์‹ค์ œ ๊ตฌํ˜„์ด ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

version: "3.3"
networks:
lnnet:
services:
bitcoind:
container_name: bitcoind
build:
context: bitcoind
image: lnbook/bitcoind:latest
1amhesus ๎‚ฐ ~/lnbook/code/docker ๎‚ฐ ๎‚  develop โ— ๎‚ฐ docker compose up
[+] Running 5/5
โ ฟ Container Orakle Created 0.3s
โ ฟ Container Alice Created 0.0s
โ ฟ Container Bob Created 0.0s
โ ฟ Container Chan Created 0.0s
โ ฟ Container bitcoind Created 0.0s
Attaching to Alice, Bob, Chan, Orakle, bitcoind
Chan | Waiting for bitcoind to start...
Bob | Waiting for bitcoind to start...
#!/bin/bash
#
# Helper functions
#
# run-in-node: Run a command inside a docker container, using the bash shell
function run-in-node () {
docker exec "$1" /bin/bash -c "${@:2}"
1amhesus ๎‚ฐ ~/lnbook/code/docker ๎‚ฐ ๎‚  develop โ— ๎‚ฐ bash run-payment-demo.sh
Starting Orakle Payment Demo
======================================================
Waiting for nodes to startup
- Waiting for bitcoind startup...
- Waiting for bitcoind mining...
- Waiting for Alice startup...
- Waiting for Bob startup...
- Waiting for Chan startup...