Skip to content

Instantly share code, notes, and snippets.

@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
@douglaz
douglaz / gist:368a10ce1b157496c9549a4c27bf1c8f
Created May 17, 2018 00:39
BALADA - A MAIOR MENTIRA DA TERRA
BALADA - A MAIOR MENTIRA DA TERRA
(Relato postado pelo Realista Ermac do Fórum Legado Realista)
Já trabalhei como barman e observando bastante a vida dos que estavam do outro lado do balcão, tudo o que já falaram é verdade.
Entradas para as mulheres são sempre cortesias. Os homens pagam caro. E não se enganem achando que as mulheres não pagam a entrada, quem paga são os homens. Se a entrada na noite custa R$ 30,00 pra um homem, a verdade é que é R$ 15,00 masculino (a dele). e R$ 15,00 feminino (de alguma menina que entrou "free"). Os donos de bares jamais levam prejuízos e nada é de graça. No bar que eu trabalhava, o dono fazia "descontos" para os amigos, e usava esse argumento.
Nos bares sempre tem as bebidas originais bem guardadas, que são destinadas aos Vips. Geralmente os alfa$ ricos chegam, as bebidas de qualidade vão todos para eles, e pegam mulher a rodo. Já os pobres coitados que não são ricos, consomem bebidas falsificadas e não pegam ninguém.
Nesses lugares, o que mais vi mandar em tudo é o din
object CollectionUtils {
implicit class PairRDDLikeOps[K, V](iterable: Iterable[(K, V)]) {
def groupByKey(): List[(K, Iterable[V])] = {
iterable
.groupBy { case (k, _) => k }
.mapValues(_.map { case (_, v) => v })
.toList
}
def reduceByKey(fn: (V, V) => V): List[(K, V)] = {
@douglaz
douglaz / PeriodDirectorActor.scala
Created March 8, 2017 17:03
Partial example of an Akka FSM with well defined messages and states
object PeriodDirectorActor {
// Events received from other actors or generated internally
object Events {
sealed abstract trait EventType
// Public events
case class Start(conf: FullConfiguration) extends EventType
case object Stop extends EventType
// Called by StreamReaders
case class ReaderWorkAvailable(work: CartView) extends EventType
@douglaz
douglaz / serializationdemo.scala
Last active December 5, 2016 17:14
Scala Serialization: Set x List x Vector x Seq x Array using Kryo and Java
import scala.collection.mutable
object C {
case class CSet(s: Set[String])
case class CLis(s: List[String])
case class CVec(s: Vector[String])
case class CSeq(s: Seq[String])
case class CArr(s: Array[String])
}