Changing my mind about ZMQ support in satd. Originally it was out of scope because the streaming API SDK covers it and much more. But realizing now, for satd to be a full drop-in replacement for Core in Umbrel we need ZMQ compatibility. So scoping that out now for 0.7.0.
@BowTiedBull Each cycle resets price expectations. Guys get 20-50% gains and cash out, like you would with any other asset. Few realize, long term with volatility, it’s going up basically forever.
Just to be clear, Bitcoin consensus rules always apply and we aren't changing them. You can't control what txns get mined into blocks or accepted/relayed by other nodes if they pass consensus rules. The policy language only allows you to define the behavior of your node only.
In other words, if you mine against your own node, you choose what goes into your blocks. Solo miners can do this today via getblocktemplate. In 0.6.0 you can point hardware straight at satd's built-in Stratum V1/V2 server, and the template it hands your miner is the one your policy built. Nothing needed beyond satd + your hardware.
The scope that matters most for miners is on template:
quarantine no-mine-big-witness on template when
https://t.co/K8dvR6VscX_witness_size > 100kb
A tx caught by this rule is still relayed (if you want to block relay, copy the rule with an "on relay" clause). It never goes into a block template this node builds, and it isn't counted in the node's fee estimates.
Why no "reject"? satd needs to maintain a consistent view of the mempool as the rest of the network. Simply discarding matching txns would make it difficult to process future dependent txns (RBF, CPFP) for example. Effect is the same: node won't relay or mine if matched.
Something I haven't posted much about: satd has a transaction-filtering policy language. It's a small, typed, non-Turing-complete rule language in plain text. You describe transaction shapes that you want your node to relay and mine.
Rules read top to bottom, and the first match wins:
quarantine <name> [on relay|template] when <condition>
allow <name> when <condition>
Options are "quarantine" or "allow". Quarantine prevents relay or mining, depending on the "on" clause.
Implementing warnet support exposed some compat bugs that needed fixing. Incuding that, 38 commits since last Tuesday. Aiming for at least a few days soaking on mainnet/testnet4/signet before releasing 0.6.0
What landed 👇
Doing final release planning for satd 0.6.0. This is going to be a mining and storage efficiency themed release:
- 50% smaller chainstate on average. Requires reindex on first startup.
- Native Stratum V1 and V2 support in the node (incl. SV1 with TLS).
Hook up your solo miner directly to your running local satd node, instead of https://t.co/L7uzl1QoLh or other pools.
Release ETA, ~1 week out
@januszg_ Interested to hear why you’re bullish on this. Seems like just using OP_RETURN as an order timestamped data store. Everything else interesting happens in separate systems. It’s not clear to me that timestamped data storage is the hard part of this problem.