Skip to content

Instantly share code, notes, and snippets.

@douglaz
douglaz / tau-prompt-stdin-skill-discovery-race.md
Last active August 11, 2026 03:39
Tau bug report: --prompt-stdin initial :skill is unknown although startup discovery publishes it

--prompt-stdin: initial :skill is unknown although startup discovery publishes it

Summary

An initial :skill command submitted with tau --prompt-stdin is rejected as unknown even though the same project-local skill is discovered and becomes available to the session during startup. The equivalent command works in the interactive UI after extension readiness.

The observed event order is consistent with an initialization-order defect in

@douglaz
douglaz / bip-110-analysis.md
Last active July 10, 2026 14:30
BIP-110: 10-point analysis with counterarguments
  1. BIP-110 is a temporary consensus soft fork against arbitrary data. It adds one-year consensus restrictions meant to reject large data-storage patterns and refocus Bitcoin on money. Counterargument: the problem is not just duration. Even a temporary consensus fork can create permanent governance precedent, coordination risk, and chain-split risk. ([GitHub][1])

  2. It moves data limits from relay policy into consensus. The BIP turns things like OP_RETURN size and large data pushes into block-validity rules. Counterargument: this changes Bitcoin from "valid transaction is valid" toward "valid transaction is valid only if the current majority approves the use case." That is the protocol-neutrality concern.

  3. It caps most new output scriptPubKeys at 34 bytes, while allowing OP_RETURN only up to 83 bytes. The goal is to prevent large spendable-looking outputs from bloating the UTXO set. Counterargument: OP_RETURN is the least harmful place for arbitrary data because nodes

@douglaz
douglaz / cube-bitdevs-gist.md
Created June 19, 2026 21:17
Cube (Bitcoin L2 smart-contract VM) — compact bitdevs discussion gist

Cube — bitdevs gist

Source: Introducing Cube · repo: cube-btc/cube

TL;DR

A Bitcoin L2 VM for trustless smart contracts — no soft fork, no bridge, no federation. Pitch: Ark-style virtual ownership + BitVM disprovable computation, glued together so contracts can hold BTC and run general logic, with unilateral exit to L1. Marketed as "trustless custody + generalized programmability."

Core idea: ZKTLC

Zero-Knowledge Time-Locked Contract = a timeout-tree virtual output carrying a zero-knowledge computation assertion enforceable via BitVM disproval. Two ingredients:

  • Timeout trees (Ark-style) → scalable virtual ownership + unilateral redemption.
@douglaz
douglaz / news-lens-spec.html
Last active May 12, 2026 02:01
news-lens spec explainer (rev 4) — Wiki-grounded news commentary fork of news-tagger
<!doctype html>
<html lang="en" class="bg-slate-950 text-slate-100">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>news-lens — spec rev 4</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
@douglaz
douglaz / comparison.md
Last active September 12, 2025 21:02
RGB vs Taproot Assets vs Spark vs Liquid vs Rootstock vs Citrea

| Layer | Type | How BTC / assets move | Security / trust at bridge | Programming model | Lightning interop | USDT today | | ----------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------

@douglaz
douglaz / comparison.md
Created September 12, 2025 19:15
RGB vs Taproot Assets vs Spark vs Liquid
Dimension RGB Taproot Assets (TA) Spark (statechains L2) Liquid (sidechain)

Hardware Wallet Implementation Analysis Report

Python vs Rust Projects Comparison


Executive Summary

This report analyzes the features and implementation approaches of major open-source hardware wallet projects, comparing Python-based implementations (Krux, SeedSigner, Specter-DIY) with Rust-based or Rust-adopting projects (BitBox02, Parity Signer). The analysis identifies common features, key differences, and opportunities for improvement in the hardware wallet ecosystem.


@douglaz
douglaz / .env
Last active July 9, 2025 20:35
docker-compose for a fedimint
# Bitcoin auth information
# generate with https://jlopp.github.io/bitcoin-core-rpc-auth-generator/,
# default is user: bitcoin, pass: bitcoin
BITCOIND_RPC_AUTH=bitcoin:54ae356e13a76dc8068e960eb43193cb$$efeeb347a1f0b4a7b7832cc26e68861bc46f89126a8e136ff9932cad47739041
# This domain should point to the machine fedimintd is being deployed to
FM_DOMAIN=my-super-host.com
# Where bitcoind is reachable
FM_BITCOIN_RPC_KIND=bitcoind
@douglaz
douglaz / print.md
Last active May 13, 2025 16:32
Daniel Fraga remarks again Bitcoin Core

Rust Coding Conventions

String Interpolation

For format!, println!, info!, debug!, and similar macros, either for normal display like {} or debug display like {:?}, use the following:

Correct Usage:

  • ALWAYS use direct variable names when they match the placeholder name:
    let name = "John";
    println!("Hello {name}");  // GOOD - Direct use of variable name in placeholder