Sep 9, 2020
The PR branch HEAD was a25a5e42 at the time of this review club meeting.
Bitcoin wiki defines signet as
“a proposed new test network for the Bitcoin block chain which adds an
additional signature requirement to block validation.”
This pull request implements the portion of
responsible for connecting to a signet network and validating blocks (it does
not implement the code required by miners to sign signet blocks). We are
touching consensus-critical code today! Let’s make sure we do it right :-)
Because this PR is rather large, we are going to focus on the first four
Once the PR branch is built, you can connect to signet by creating a new data
directory and launching the development build of Bitcoin Core:
# make a new data directory
$ mkdir /absolute/path/to/datadir/for/signet
# enter the bitcoin repo where this PR is built locally
$ cd bitcoin
$ src/bitcoind -signet -datadir=/absolute/path/to/datadir/for/signet
# generate a signet address
$ src/bitcoin-cli -signet -datadir=/absolute/path/to/datadir/for/signet getnewaddress
The PR author,
kallewoof, maintains a signet
faucet. If you can run the branch and generate a
signet address, you can request a payout!
At the start of this meeting, I’ll ask everyone for their signet address and
reward participants who answer questions correctly or ask their own good
Why do we need test networks and what problems (if any) do we have with the
What are some of the
that distinguish mainnet, testnet and signet? Which of these do the
different networks have in common? What makes signet special?
How many signets are there? Could we start our own just for review club, and
if so, how?
What parts of this PR affect consensus-critical code for nodes running on
have been added?
CMutableTransaction tx_to_spend and
tx_spending? (Defined in
Who broadcasts these transactions?
GetWitnessCommitmentIndex() moved? Was anything altered?
(bonus) Did you build the GUI? How does it look
Why is the signet commitment concatenated to the witness
commitment and not in its own
1 17:00 <pinheadmz> #startmeeting
2 17:00 <michaelfolkson> Can continue after. Meeting starting in seconds
3 17:00 <pinheadmz> Welcome to Bitcoin Core PR Review Club! Today's PR is #18267 implementation of BIP-325
4 17:00 <pinheadmz> also known as...
6 17:00 <pinheadmz> 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋
7 17:00 <pinheadmz> /$$$$$$ /$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$$$ /$$$$$$$$
8 17:00 <pinheadmz> /$$__ $$|_ $$_/ /$$__ $$| $$$ | $$| $$_____/|__ $$__/
9 17:00 <pinheadmz> | $$ \__/ | $$ | $$ \__/| $$$$| $$| $$ | $$
10 17:00 <pinheadmz> | $$$$$$ | $$ | $$ /$$$$| $$ $$ $$| $$$$$ | $$
11 17:00 <pinheadmz> \____ $$ | $$ | $$|_ $$| $$ $$$$| $$__/ | $$
12 17:00 <pinheadmz> /$$ \ $$ | $$ | $$ \ $$| $$\ $$$| $$ | $$
13 17:00 <pinheadmz> | $$$$$$/ /$$$$$$| $$$$$$/| $$ \ $$| $$$$$$$$ | $$
14 17:00 <pinheadmz> \______/ |______/ \______/ |__/ \__/|________/ |__/
15 17:00 <pinheadmz> 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋 🌋
16 17:00 <Alistair_Mann> a25
23 17:00 <michaelfolkson> Ok.... that is cool
26 17:00 <michaelfolkson> hi
27 17:01 <sunon> Hey everyone
28 17:01 <robot-dreams> hi
29 17:01 <@jnewbery> steady on pinheadmz. People will expect fireworks every time now
31 17:01 <nehan> my expectations for future pr review clubs have gone up
35 17:01 <pinheadmz> jnewbery raising the bar :-) party time!
36 17:01 <pinheadmz> welcome everyone! Please be polite and respectful to each other. Everyone is here to learn and express curiosity.
37 17:01 <jonatack> that literally leaps out of the screen... congrats pinheadmz
39 17:01 <pinheadmz> Most of the questions have multiple answers and some of them have kinda tricky answers -- so don't be afraid to take guesses or use your imagination!
40 17:02 <LarryRuane> hello everyone
41 17:02 <pinheadmz> Let's start with a quick sign-in: Two y/n questions:
42 17:02 <pinheadmz> Did you review the PR? / Did you build the branch and connect to signet?
51 17:02 <michaelfolkson> y/y
52 17:02 <Alistair_Mann> y/ny
53 17:02 <robot-dreams> y/y
54 17:02 <LarryRuane> y (sort of) / y
57 17:03 <fjahr> y/y but only older version
58 17:03 <@jnewbery> 0.1y/n
59 17:03 <pinheadmz> Those of you that were able to connect and generate a receive address, feel free to drop it here - you might win some worthless signet coins by participating!
62 17:04 <LarryRuane> tb1qtjtf4hcjq3c9dnx0gy57lpd43427ttq5a8jfzu
63 17:04 <jonatack> tb1qzdu76vyh6cpz9ehdz27u4sf8erzgz76m2kg2rw
64 17:04 <robot-dreams> tb1qgcq63q0qrwe2x2arpdds7rr5ek4qasu9vm80at
65 17:04 <emzy> tb1qplt4vxhanqtepew5te605t2f9k9kkdpvysa89z
66 17:04 <jonatack> send me 1 get 2 back
67 17:05 <pinheadmz> OK let's dig in: Can anyone start us off with a quick definition of signet?
68 17:05 <michaelfolkson> tb1qcdntxa942mg620gnlh6kqs8th3yayqgr7xnmgt
69 17:05 <nehan> tb1qhx8vzcl0hv6mjas06z28t5xt2834h38lz2jj4z
71 17:05 <amiti> tb1qwhxgd9l9znletzjrd500s8jjgqzuy2mxaevhru
72 17:05 <michaelfolkson> Anyone new here?
74 17:06 <emzy> jonatack: I'm waiting ;)
75 17:06 <nehan> sunon: welcome!
76 17:06 <Dylan21m> i'm new too.
77 17:06 <subzero> sunon welcome to PR review club
78 17:06 <sunon> Thank you!
79 17:06 <Dylan21m> just watching this time :)
80 17:06 <subzero> welcome Dylan21m !
81 17:06 <pinheadmz> welcome new folks!
82 17:06 <Dylan21m> thank you
84 17:07 <pinheadmz> ok Im upping the bounty: 0.1 sBTC for a definition of signet ?!
85 17:07 <jonatack> a stable, centralized testnet
86 17:07 <robot-dreams> signet is a new test network that lets you specify custom block validation requirements; basically a way to have a realistic but sandbox'd test network
87 17:07 <theStack> i'd say signet is a new type of test network, one with an additional requirement for blocks to be accepted (a signature), which allows more control
88 17:07 <jonatack> from optech: Signet is both a tool that allows developers to create networks for testing interactions between different Bitcoin software and the name of the most popular of these testing networks.
89 17:07 <nehan> jonatack: we could have held out for more
90 17:07 <felixweis> n4FggkKF1c7mEbKqqHU6vz6C4gRFSHb51p
91 17:07 <jonatack> nehan: hehe
92 17:07 <pinheadmz> robot-dreams wins a coin!
93 17:08 <pinheadmz> felixweis is that a signet address? perhaps its non-witness? kinda interesting
94 17:08 <sipa> important to stress that signet is both a mechanism to build custom networks with a centralized component, and the name of a specific global testnet
95 17:08 <subzero> pinheadmz signet is construction of the bitcoin network with signatories signing blocks instead of mining which allows rapid testing for network generation for evaluating network performance
96 17:08 <pinheadmz> subzero good answer but also mining still happens - proof of work is still required, but ALSO the sig- rules
97 17:08 <@jnewbery> subzero: not instead of!
98 17:08 <@jnewbery> as well as
99 17:09 <felixweis> pinheadmz: correct, a legacy address on signet
100 17:09 <subzero> pinheadmz jnewbery PoW for anti DoS or other reasons?
101 17:09 <pinheadmz> felixweis sending you 0.001 just bc ur unique :-)
102 17:09 <theStack> alternative definition: "permissioned blockchain" :p
104 17:09 <nehan> i don't recall seeing anything about "custom block validation requirements" in the first 4 commits -- is that later?
105 17:09 <notmandatory> is it possible or anticipated that there will be project specific signet instances? or the a shared signet , like testnet the idea?
106 17:09 <@jnewbery> subzero: that's a good question. Maybe pinheadmz will put up a bounty to answer it
107 17:09 <michaelfolkson> It is down to the signers. If they don't want anyone else to mine they can stop other people mining
108 17:10 <michaelfolkson> But on the default Signet the plan is to let other people mine
109 17:10 <pinheadmz> michaelfolkson is that right?
110 17:11 <jonatack> emzy: done; bitcoin-cli -signet -datadir=signet sendtoaddress tb1qplt4vxhanqtepew5te605t2f9k9kkdpvysa89z 2 "emzy" "2-for-1" false true 1000 sat/B
111 17:11 <pinheadmz> i think in the curent state of the PR only a selected set of users can mine
112 17:11 <robot-dreams> nehan: great point, I'm using terminology loosely but basically referring to `CheckSignetBlockSolution`
113 17:11 <nehan> robot-dream: ah ok i thought i missed some sort of plug-and-play validation config :)
114 17:11 <sipa> what is the current signet height?
115 17:12 <michaelfolkson> pinheadmz: Current state maybe... But there really is no point to having proof of work if only the signers are mining
116 17:12 <robot-dreams> sipa: I got 2511
117 17:12 <pinheadmz> sipa 2511
120 17:12 <pinheadmz> ok lets get into the questions: Why do we need test networks and what problems (if any) do we have with the current testnet?
121 17:12 <sipa> tb1qq5rjrnvp2j0p7m327yrp7ny7dt26qt6y88ed2e
122 17:13 <emzy> jonatack: It realy worked! "txid": "deff5000b95dfb22e07e3dde631dabf831f53e0d25e186476625bdc7fe791dfb"
123 17:13 <nehan> uh am i on a different signet? I'm at 4015
124 17:13 <jonatack> emzy: while stocks last, offer limited to one per person
125 17:13 <theStack> pinheadmz: it's permissionless, which is may not always optimal for testing scenarios
126 17:13 <pinheadmz> michaelfolkson i think youre question is kinda tied into question 1 here -- what are some of the issues with testnet3? (our current testnet)
127 17:14 <@jnewbery> subzero: I believe it's so that any client that works on mainnet can switch to working with signet with minimal changes
128 17:14 <emzy> jonatack: I should have send 5 sBTC... ;)
129 17:14 <felixweis> takes forever to sync, get started. diff=1 after 20 min is making it a pain to work with
130 17:14 <pinheadmz> theStack correct! what kinds of things happen on testnet if "we just let anybody mine" ?
131 17:14 <LarryRuane> test networks let us do things that would risk losing real value on mainnet (and we might not have value on mainnet)
132 17:14 <robot-dreams> pinheadmz: if "we just let anybody mine", could a troll with lots of mining hardware get the difficult really high and then leave?
133 17:14 <nehan> hmm. did signet get restarted in the last few days?
134 17:14 <pinheadmz> LarryRuane correct! like lightning network #reckless
135 17:14 <sipa> nehan: i believe so
136 17:14 <pinheadmz> robot-dreams correct!
137 17:15 <theStack> robot-dreams: +1
138 17:15 <felixweis> random many 100s of blocks reorgs happen on a regular basis, making every assumptions lightnig e.g. takes for 6 confs = open channel.
139 17:15 <jonatack> nehan: yes, reset, new POW
140 17:15 <sipa> jnewbery: also DoS protection; PoW correctness is checked before downloading headers; signet signature only when downloading the full block
141 17:15 <jonatack> have to reindex or rm -rf
142 17:15 <pinheadmz> ill add an answer as well: i was debugging SPV mode on testnet and got stuck on a fork of nodes that are stuck on inflation blocks from last year. theyre still out there. and spv wallets cant tell theyre broken
143 17:15 <subzero> isn't another downside to testnet is there a bug in testnet difficulty that roasbeef talked about?
144 17:15 <sipa> eh, before downloading *blocks*
145 17:15 <nehan> sipa: jonatack: ok!
146 17:15 <@jnewbery> nehan: yes, there was an underflow bug with the minimum difficulty so they had to reset
147 17:16 <nehan> out-of-band communication necessary to agree on best blockchain
148 17:16 <pinheadmz> sipa robot-dreams and jonatack getting coins from a sendmany!
149 17:16 <jonatack> istm testnet suffers from large variance in block emission
150 17:16 <theStack> considering that mentioned drawback of testnet, it's kind of surprising to me that there have only been three generations of testnet yet (and not more)
151 17:16 <sipa> received 88f4ee78856ee88d6eeef3514821ddc6bfa89ca0b6c6146b6b21c8827eb83dd3 !
152 17:17 <notmandatory> pinheadmz: is another prob with testnet is since it's random miners it's harder to coordinate reproducing specific mining scenarios to test against?
153 17:17 <fjahr> re: PoW I assumed it would have been more code changes and more difficult to review the code if PoW was completely removed
154 17:17 <pinheadmz> notmandatory thats interesting and a good point
155 17:17 <sipa> fjahr: not to mention it being less representative of the real network
156 17:17 <b10c> will testnet3 be deprecated once signet is adopted?
157 17:17 <petemyers> Hi I'm new, I'm sorry I didn't say earlier.
158 17:17 <pinheadmz> if you WANT to test reorgs, its hard to coordinate one on a public network
159 17:17 <pinheadmz> hi petemyers !
160 17:17 <jonatack> welcome petemyers
161 17:18 <subzero> welcome petemyers
162 17:18 <petemyers> Thanks. Just lurking this time.
163 17:18 <michaelfolkson> No b10c, it will continue. No way to stop it even if we wanted to
164 17:18 <pinheadmz> Ok I'm going to push forward so we can get to more good stuff
165 17:18 <pinheadmz> What are some of the parameters that distinguish mainnet, testnet and signet? Which of these do the different networks have in common? What makes signet special?
166 17:18 <pinheadmz> lots of answers to this question
167 17:18 <michaelfolkson> But it could possibly get reset
168 17:18 <b10c> michaelfolkson: thanks
169 17:19 <emzy> I'm waiting for a block. Can someone please sign a new one? ;)
170 17:19 <robot-dreams> pinheadmz: one small difference is default ports are different: 8333 (mainnet), 18333 (testnet), 38333 (signet)
171 17:19 <pinheadmz> robot-dreams yes!!
172 17:20 <pinheadmz> robot-dreams is getting sig-rich over here!
173 17:20 <pinheadmz> anyone else?
174 17:20 <notmandatory> pinheadmz also of course different genesis blocks
175 17:20 <michaelfolkson> Only Kalle and AJ are block signers currently emzy
176 17:20 <pinheadmz> notmandatory yes!
177 17:20 <theStack> pinheadmz: unlike mainnet and testnet, on signet even the most powerful miner could never submit a block if he can't provide the right signature
178 17:20 <Alistair_Mann> bitcoin.conf contains signet=1 / or -signet on cli
179 17:20 <pinheadmz> theStack great point!!
180 17:21 <LarryRuane> if a group of people want to set up their own "private" signet, they'd have to choose different port numbers?
181 17:21 <michaelfolkson> Network magic too
182 17:21 <pinheadmz> LarryRuane good question, 0.001 sBTC for you -- does any one know?
183 17:21 <emzy> michaelfolkson: so who I call first?
184 17:21 <pinheadmz> michaelfolkson yes!
185 17:21 <michaelfolkson> Whoever you want to wake up emzy ;)
186 17:21 <robot-dreams> 🤯 I am at 0.1111 (if I'm lucky maybe I'll get to 0.11111111 by the end of this session)
187 17:21 <robot-dreams> 0.111*
188 17:22 <LarryRuane> changing port numbers and network magic is a source code change, or can be specified on the command line?
189 17:22 <pinheadmz> LarryRuane so i think you are right the ports defined in chainparams but that can be customized
190 17:22 <michaelfolkson> I think it is Kalle's script currently mining. So it would be him rather than AJ
191 17:22 <pinheadmz> LarryRuane however, the magic bytes would prevent yu from actually connecting to the wrong signet
192 17:23 <@jnewbery> powLimit is different between mainnet, regtest and signet
193 17:23 <emzy> Could be interesting to have another network magic on the same port...
194 17:23 <pinheadmz> jnewbery nice answer, a deep cut
195 17:23 <pinheadmz> i will donate your signet btc to charity
196 17:24 <jonatack> signet is the only chain where consensus.signet_blocks = true
197 17:24 <sipa> changing ports isn't strictly necessary, but it helps if people want to run both networks on one IP
198 17:24 <@jnewbery> thank you. benevolent bitcoiners fund please
199 17:24 <pinheadmz> jonatack great answer! yes i was about to go there
200 17:24 <pinheadmz> so signet is special, not just because it has different magic bytes or p2p ports but it is the only network where checking signet blocks is a thing!
201 17:25 <robot-dreams> LarryRuane: yeah, good question: you can specify the port as a command line argument `-port=<port>`, or in the config file; however, I don't think you set network magic this way
202 17:25 <pinheadmz> and we kinda touched on this next question already: How many signets are there? Could we start our own just for review club, and if so, how?
203 17:26 <theStack> pinheadmz: the sky is the limit :)
204 17:26 <pinheadmz> theStack correct! and if we wanted to create a unique signet right now, which `conesensus.______` property would we set ?
205 17:27 <michaelfolkson> robot-dreams LarryRuane: The network magic is set for the default Signet in the source code. If you set up a new Signet you would adjust it
206 17:27 <robot-dreams> pinheadmz: `signet_challenge`?
207 17:27 <jonatack> also the address format: the bech32 human readable parts vary between the chains: bc, tb, bcrt
208 17:27 <pinheadmz> michaelfolkson ooooh not just that.... but perhaps the magic bytes get set automatically soemhow ??!?!?!?!??!?!?!
209 17:27 <pinheadmz> robot-dreams correct!
210 17:27 <theStack> though i guess the practical limit would probably be the possible number of network magic combinations, i.e. ~2^32?
211 17:27 <pinheadmz> jonatack correct although we realized signet has the same human-readbale-part as testnet
212 17:28 <pinheadmz> theStack thats an interesting point
213 17:28 <pinheadmz> but even if we overflow the magic bytes, you can still have unlimited signet_challenge 's
214 17:28 <emzy> I think the max signets are 2^256
215 17:28 <emzy> * number of
216 17:29 <pinheadmz> emzy can you explain how you came up with that ?
217 17:29 <jonatack> note that -signet_challenge was just renamed from -signet_blockscript
218 17:30 <sipa> i'd say there is an infinity of possible signets... but once you get close to 2^128you run into problems with potential collisions across block hashes (if you care about those)
219 17:30 <emzy> pinheadmz: I just tought the magic has someting with the genisis hash in common. But not sure.
220 17:30 <pinheadmz> i jsut sent a sBTC sendmany to everyone!!! such great asnwers
221 17:30 <sunon> Less than infinity
222 17:31 <pinheadmz> emzy well this an interesting point. the magic bytes sort of help us identify peers on the correct network, but the actual "consensus rules" for block validation are set by signet_challenge
223 17:31 <pinheadmz> which, as sipa points out, could literally be anything
224 17:31 <LarryRuane> the help for -signet_challenge says "Blocks must satisfy the given script to be considered valid" ... what does satisfy mean in this case?
225 17:31 <emzy> pinheadmz: right
226 17:31 <pinheadmz> and while we're on that note - does anyone know what exactly signet_challenge is? what type of data that is?
227 17:31 <notmandatory> pinheadmz does the magic also prevent you from discovering and connecting to the wrong network peer nodes?
228 17:31 <pinheadmz> LarryRuane is on the right track
229 17:32 <robot-dreams> pinheadmz: not confident, but is it an arbitrary scriptPubKey?
230 17:32 <pinheadmz> notmandatory if you recieve a p2p message with the wrong magic bytes ,you just disconnect
231 17:32 <pinheadmz> robot-dreams correct! it is an output script
232 17:32 <pinheadmz> its sort of arbitrary, but it is the one thing that defines a signet network
233 17:32 <michaelfolkson> Any problems with setting up a Signet using the same network magic as an existing Signet network? I'm guessing you'll just get transactions and blocks sent to you you are not interested in?
234 17:32 <jonatack> yes...ParseHex(signet_challenge), must be a single value
235 17:33 <pinheadmz> michaelfolkson correct it would be like connecting BTC nodes to BCH nodes :-/ (which IIRC have the same port and magic bytes? still? idk)
236 17:33 <sipa> michaelfolkson: it just means you won't immediately detect you're connected to the wrong network
237 17:33 <pinheadmz> right, you dont disconnect right away but youll figure it out soon enough when all the incoming blocks and txs are invalid
238 17:33 <sipa> right, exactly
239 17:33 <pinheadmz> so heres a quick bonus Q. the (default) signet_challenege in the PR is:
240 17:33 <pinheadmz> 512103ad5e0edad18cb1f0fc0d28a3d4f1f3e445640337489abb10404f2d1e086be430210359ef5021964fe22d6f8e05b2463c9540ce96883fe3b278760f048f5189f2e6c452ae
241 17:33 <pinheadmz> does anyone know what this means?
242 17:34 <pinheadmz> can transalte into english or at least bitcoin-speak?
243 17:34 <sipa> 51 is OP_1
244 17:34 <pinheadmz> hint: there is a single rpc command that can *ahem* DECODE this RAW SCRIPT
245 17:34 <sipa> 21 means push the next 33 bytes
246 17:34 <sipa> what follows looks like a pubkey
247 17:35 <pinheadmz> sipa is doing it in his head, of course
248 17:35 <jonatack> bitcoin-cli -signet -datadir=signet decodescript
249 17:35 <pinheadmz> jonatack yes! so what is this default signet challenge all about ?
250 17:36 <emzy> decodescript works
251 17:36 <LarryRuane> pinheadmz "but youll figure it out soon enough" ... then what, ban those peers?
252 17:36 <jonatack> multisig 2 addresses
253 17:36 <pinheadmz> jonatack yep! 0.2 for you
254 17:36 <b10c> ae at the end is OP_CHECKMULTISIG
255 17:36 <pinheadmz> and what are the m of n values ?
256 17:36 <pinheadmz> b10c correct!
257 17:36 <sipa> LarryRuane: it's complicated
258 17:36 <jrawsthorne> Very late. This is my first time. Anyone want to be generous and send some coins tb1qsk6mtay6kzm9t0gx8lvu07g89d0ty6w4v4qzxm
259 17:36 <jrawsthorne> 1 of 2
260 17:37 <pinheadmz> jrawsthorne correct!
261 17:37 <pinheadmz> sending you worthless coins !
262 17:37 <pinheadmz> its a 1 of 2 multisig
263 17:37 <pinheadmz> that means there are two private keys that can mine blocks
264 17:37 <sipa> LarryRuane: we no longer ban misbehaving peers since recently; they just get discouraged (which means temporarily avoided for new connections, and prioritized for disconnection if we reach our connection limit)
265 17:37 <pinheadmz> probably that means two people
266 17:38 <pinheadmz> only one of those keys needs to sign for a signet block to be valid
267 17:38 <sunon> Two for that specific network?
268 17:38 <jonatack> sipa: fwiw signet is "Disconnecting and discouraging peer 49!" ~ every couple minutes
269 17:38 <b10c> one key belongs to kalle and one to AJ?
270 17:38 <michaelfolkson> For the default Signet
272 17:38 <michaelfolkson> Yes b10c
273 17:39 <pinheadmz> ok we are about to level up everyone -- any lingering questions before we move on to implementation details?
274 17:39 <sipa> jonatack: what is the reason? old signet nodes?
275 17:39 <pinheadmz> (man we really need a new block, im almost at my unconfrimed limit!)
276 17:39 <pinheadmz> ok here we go:
277 17:39 <jonatack> afaict it's only people running tor?
278 17:39 <pinheadmz> What are CMutableTransaction tx_to_spend and CMutableTransaction tx_spending? (Defined in src/signet.cpp) Who broadcasts these transactions?
279 17:39 <emzy> pinheadmz: you know who to call. ;)
280 17:40 <jonatack> curious if anyone else is seeing it
281 17:40 <pinheadmz> these structures are kinda new in this PR's life and actually BIP-325 was recently updated to include them
282 17:40 <jonatack> afaict usually signet by default connects only to one peer, unless you -addnode
283 17:40 <robot-dreams> pinheadmz: I think they are generated from a block, as a convenient way to reuse signature validation to check if the _block_ is valid for that signet
284 17:41 <sipa> robot-dreams: not just the verification, but signing also
285 17:41 <nehan> trick question: no one broadcasts them
286 17:41 <pinheadmz> nehan WINNER YES YE SY ES EY SYEYS EY
287 17:41 <pinheadmz> im so excited i cant type
288 17:41 <pinheadmz> isnt that just so interesting?
289 17:41 <sipa> it means all infrastructure that exista for agreeing on and signing transactions can be reused for signet signing
290 17:41 <nehan> yeah it's cute to leverage transaction verification for signet verification
291 17:41 <pinheadmz> we have these transactions that dont get broadcast at all
292 17:42 <pinheadmz> nehan getting 0.1 sBTC for answering my fav question in the meeting today
293 17:42 <sipa> they're imaginary transactions :)
294 17:42 <robot-dreams> sipa: is this signing done once per block?
296 17:43 <pinheadmz> so why are there two?
297 17:43 <pinheadmz> can anyone explain what is happening under the hood here?
298 17:43 <pinheadmz> we have these two hard-coded tx templates
299 17:43 <emzy> nice usage of transaction verification.
300 17:43 <nehan> one to specify the scriptPubKey and another to provide the scriptSig
301 17:43 <pinheadmz> and this signet_challenge
302 17:43 <felixweis> how do i get a taproot send/spend in a block, isn't it still non-standard so it won't be forwarded by nodes?
303 17:43 <pinheadmz> nehan correct!
304 17:43 <sipa> has signet forked in taproot already?
305 17:44 <pinheadmz> sipa no
306 17:44 <michaelfolkson> You can only get a Taproot output in a block felixweis, not spend it
307 17:44 <pinheadmz> felixweis you can actually send coins to a witness V1 program right now
308 17:44 <pinheadmz> and that output is anyone can spend
309 17:44 <sipa> spending would be nonstandard
310 17:44 <pinheadmz> yeah and we talked a bit about this last week i think in a taproot review club meeting
311 17:45 <felixweis> is there a pushtx php script or so to get it to a miner?
312 17:45 <nehan> pinheadmz: i had to blow away my previous signet installation and i deleted my previous wallet :(
313 17:45 <pinheadmz> nehan me too :-( good thing coins are free
314 17:45 <jonatack> nehan: yup same
315 17:45 <pinheadmz> OK so we got these 2 Txs, and we know that the scriptPubKey in the output of the first tx is set by whoever launches the signet or sets it with command line argument
316 17:45 <nehan> was curious if there was some smart way to do this without deleting the wallet?
317 17:45 <pinheadmz> so the scriptSig and witness though...
318 17:46 <jonatack> nehan: reindex i thinx
319 17:46 <nehan> jonatack: did not work
320 17:46 <pinheadmz> nehan i found all my previous txs were actually abandoned. i think bc the chain reset. no reindex can save you in that state
321 17:46 <michaelfolkson> Yup same
322 17:46 <jonatack> nehan: oh :(
323 17:46 <nehan> pinheadmz: ah yeah the coinbases are new, ok
324 17:46 <jonatack> i didn't try, went straight for the rm -rf
325 17:47 <petemyers> I gotta go, thanks for letting me watch your discourse about sBTC txs! Toe in the water. A helpful prompt for what I need to read next. See you all next week.
326 17:47 * michaelfolkson waves
327 17:47 <pinheadmz> Ok 0.1 sBTC for the first answer: The tx_spending scriptSig and witness
328 17:47 <pinheadmz> where does it come from?
329 17:47 <robot-dreams> pinheadmz: from BIP325, "A block is considered fully validated only if the to_sign transaction is a valid spend of the to_spend transaction"
330 17:48 <pinheadmz> robot-dreams yes! so if I am a miner, how do I do that?
331 17:48 <pinheadmz> or, more in the scope of this PR - if I am A *validator* where do i look for that data ?
332 17:48 <nehan> it's somewehre in the coinbase
333 17:48 <robot-dreams> the witness commitment
334 17:48 <pinheadmz> coins for robot-dreams and nehan !
335 17:49 <pinheadmz> yeah its not really "in" the witness commitment right?
336 17:49 <pinheadmz> but, concatenated to it
337 17:49 <robot-dreams> right
338 17:49 <jonatack> CheckSignetBlockSolution()
339 17:49 <pinheadmz> and if kallewoof or aj were here maybe id get an answer to the double-bonus question
340 17:49 <sipa> isn't it a separate commitment?
341 17:49 <pinheadmz> maybe sipa has insight
342 17:49 <nehan> i was confused by the bip spec. why is bytes 1-5?
345 17:49 <nehan> Does that mean the first 5 bytes, or a variable length thing?
346 17:50 <robot-dreams> pinheadmz: follow-up question for double bonus, would it be harder to find the correct index (instead of just calling the existing `GetWitnessCommitmentIndex`) if we had a separate `OP_RETURN`?
347 17:50 <sipa> pinheadmz: ah indeed
348 17:50 <pinheadmz> robot-dreams thats a good insight
349 17:50 <sipa> not sure that's a good idea
350 17:50 <pinheadmz> it could just be to reduce that complexity
351 17:51 <pinheadmz> thered have to be a new function `getSignetCommitmentIndex` i suppose
352 17:51 <pinheadmz> and also another goal of signet we didnt mention yet is that we want it to otherwise be as close to mainnet as possible
353 17:51 <pinheadmz> so idk, miners add extra opreturns for different reasons all the time
354 17:51 <pinheadmz> but maybe the design motivation here is just change as little as possible
356 17:52 <sipa> it means that "real" consensus extensions (like a second witness...) can'
357 17:52 <sipa> use that same position
358 17:52 <pinheadmz> oh interesting
359 17:52 <pinheadmz> second witness ?
360 17:52 <pinheadmz> like an extension block comitment or something?
361 17:52 <sipa> for example
362 17:52 <sipa> highly hypothetical of course
363 17:53 <pinheadmz> good point, this signet spec limits other uses for that one opreturn
364 17:53 <pinheadmz> or compact filter comitment
365 17:53 <pinheadmz> but i think these could just as easily end up in theri own output anyway right?
366 17:53 <robot-dreams> sipa: is it more likely that other consensus extensions would use a new OP_RETURN or use bytes 39 onwards of the witness commitment?
367 17:53 <sipa> well signet in such a hypothetical scenario could adapt to either say "the second witness commitment goes after the signet one", or could move itself to the end
369 17:53 <sipa> robot-dreams: who knows
370 17:53 <robot-dreams> fair enough :)
371 17:53 <sipa> not a big deal
372 17:54 <pinheadmz> Ok last 5 minutes!
373 17:54 <pinheadmz> Why was GetWitnessCommitmentIndex() moved? Was anything altered?
374 17:54 <subzero> is everyone else's signet chain tip: best=000000dcb98799f73c53bc720520064656e40af9e92611cc7e4af6b273eaa2f0 height=2514 ?
375 17:54 <pinheadmz> subzero yeah me too
376 17:54 <robot-dreams> subzero: yes
377 17:55 <nehan> subzero: yes
378 17:55 <sipa> 000000dcb98799f73c53bc720520064656e40af9e92611cc7e4af6b273eaa2f0
379 17:55 <sipa> (use getchaintips)
380 17:55 <pinheadmz> last question is more about the code than the concept
382 17:55 <pinheadmz> why did the author do this?
383 17:55 <Alistair_Mann> subzero: yes
384 17:55 <emzy> new best=000000dcb98799f73c53bc720520064656e40af9e92611cc7e4af6b273eaa2f0
385 17:56 <jonatack> pinheadmz: i recall MarcoFalke asking for it to be moved a few months ago, ~June, but I'd have to look in the GH comments for why
386 17:56 <jonatack> subzero: same here
387 17:57 * subzero hmm if only there was a digital-only market for establishing chaintip :P
388 17:57 <pinheadmz> jonatack interesting yeah i think its a subtlty
389 17:57 <pinheadmz> i think it may be so signet.cpp doesnt have to refernece all of validation.cpp?
390 17:57 <@jnewbery> I assume so it can be used by other translation units that don't #include validation.h
391 17:57 <pinheadmz> yeah
392 17:58 <jonatack> something along the lines of don't mix your chocolate with my peanut butter
393 17:58 <pinheadmz> and one day maybe we can discuss why we have two vlaidation.cpp 's
394 17:58 <pinheadmz> ok last two minutes!
395 17:58 <pinheadmz> im going to make it rain on signet right now - coins for all!
396 17:58 <pinheadmz> did we miss anyhting?
397 17:58 <pinheadmz> any last minute head-scratchers ?
398 17:58 <emzy> Free Coinz ;)
399 17:58 <notmandatory> will there be signet faucets?
400 17:58 <michaelfolkson> How close is this to being merged?
401 17:58 <@jnewbery> I have a question? Is the difficulty for the signet genesis block lower than the difficulty for the mainnet genesis block?
402 17:58 <pinheadmz> notmandatory yes there is one!
404 17:59 <nehan> new address: tb1qq5946cjl9zyx93xdcjd6qqgt5zeu5wzxp2xnfp
406 17:59 <pinheadmz> haha nehan is avoiding address reuse, good practice
407 17:59 <notmandatory> pinheadmz, woo hoo free signet coins ;-)
408 17:59 <pinheadmz> jonatack nice find! thank you
409 17:59 <sipa> nehan: fwiw, you didn't need to delete your wallet
410 17:59 <emzy> I don't care. Is there a mixer for sBTC already?
411 17:59 <jonatack> ...or maybe GetWitnessCommitmentIndex was moved again after that
412 18:00 <pinheadmz> jnewbery good Q... i know they had to change something about just recently
413 18:00 <jonatack> new address: tb1qdef8vxrznlzr0yz6d56gsjldthc6tx5vzvypk5
414 18:01 <@jnewbery> maybe leave it as an exercise for the reader?
415 18:01 <nehan> sipa: it was an accident :)
416 18:01 <pinheadmz> OK thats our time friends !
417 18:01 <jonatack> jnewbery: iirc the difficulty was just readjusted
418 18:01 <pinheadmz> #endmeeting
419 18:01 <pinheadmz> thanks everyone for playing!
420 18:01 <@jnewbery> thanks pinheadmz. Great meeting!
421 18:01 <pinheadmz> super fun!
422 18:01 <robot-dreams> thanks!
423 18:01 <@jnewbery> I'm really going to have to raise my game
424 18:01 <Alistair_Mann> tyvm pinheadmz!
426 18:01 <nehan> thanks pinheadmz!
427 18:01 <pinheadmz> i spent like 3 BTC
428 18:02 <emzy> Thanks pinheadmz!
429 18:02 <jonatack> pinheadmz: that was amazing
431 18:02 <pinheadmz> 🌋 🌋 🌋
432 18:02 <jrawsthorne> Thanks for the free coins I can play around with
433 18:02 <subzero> "you get a sig-btc and you get a sig-btc and you get a sig-btc and ..."
435 18:02 <pinheadmz> jrawsthorne sending more! why not.
436 18:03 <michaelfolkson> Thanks pinheadmz!
437 18:03 <Alistair_Mann> pacey, upbeat, pinheadmz = willy wonka, this PR his chocolate factory tour. very much enjoyed!
438 18:04 <pinheadmz> Alistair_Mann 🙏 Willy is one of my heros means a lot
439 18:04 <Alistair_Mann> :-D
440 18:04 <pinheadmz> oh post-credits scene: did anyone build the GUI?
441 18:04 <pinheadmz> hows it look? anything unusual about it?
442 18:04 <subzero> please sur, may I have some tb1qyjsj4w9kpr88m7d8x9k3wtpfq3638e5kg4jk8w
443 18:05 <jrawsthorne> Thanks pinheadmz
444 18:05 <subzero> ty pinheadmz !
445 18:05 <subzero> fun meeting
446 18:05 <LarryRuane> sorry if I missed this, but what's the block explorer URL?
447 18:05 <pinheadmz> subzero sent!
448 18:05 <emzy> pinheadmz: yes I have the gui running
449 18:05 <subzero> pinheadmz ty, got eefab9cba6bed2e3ff5daf1d42ec3d76214e0c58f13e6e8a7681c9736618f3c2
451 18:05 <pinheadmz> LarryRuane ^^
452 18:06 <pinheadmz> emzy whaddaya think of the colors ?
453 18:06 <emzy> pinheadmz: no, nothing I saw.
454 18:06 <pinheadmz> emzy really? no bright yellow BTC logo? :-)
455 18:08 <emzy> pinheadmz: the splash screen is empty. But I'm using X11 on macos over ssh X-forward.. So hm.
456 18:08 <pinheadmz> oh interesting
457 18:08 <jonatack> Question: in CreateGenesisBlock(), is the difficulty determined by the bits parameter?
458 18:08 <subzero> I can see the explorer
459 18:08 <subzero> just loaded it
460 18:09 <LarryRuane> I'm also running the gui, it looks very nice (but I'm not familiar with the mainnet or testnet guis)
461 18:09 <emzy> pinheadmz: I can see it for 1sec at the start.
462 18:10 <emzy> my test pc is a old pc without monitor... :)
463 18:10 <pinheadmz> yeah for me on OSX the dock icon is also bright yellow
464 18:10 <pinheadmz> and the splash screen
465 18:10 <subzero> dock = tab?
466 18:10 <pinheadmz> yeah
467 18:10 <pinheadmz> o rlike app switcher command-tab
468 18:11 <jonatack> answering my own question: nBits does seem to set the difficulty
469 18:11 <pinheadmz> jonatack how do you find the genesis diff though? its not hard coded in chainparams
470 18:11 <pinheadmz> do you have to inspect the actual header?
471 18:11 <subzero> the dock/tab icon is the same I see on blockstream's esplora webserver next to the "bitcoin explorer" title
472 18:12 <jonatack> pinheadmz: in the calls from each chain to CreateGenesisBlock()?
473 18:12 <pinheadmz> subzero hm. whats your OS ?
474 18:12 <sipa> nBits is a (custom) compressed representation of the target (whose human-readable representation is difficulty)
475 18:12 <subzero> pinheadmz that's what I see through Tails
476 18:12 <pinheadmz> jonatack ooh gotcha
477 18:13 <jonatack> sipa: thank you
478 18:13 <pinheadmz> main: 0x1d00ffff signet: 0x1e0377ae
479 18:13 <jonatack> so to answer jnewbery's exercise, mainnet and testnet genesis blocks have the same difficulty, signet and regtest no
480 18:13 <pinheadmz> jonatack wait did i just read that wrong?
481 18:14 <pinheadmz> signet has a higher nbits / easier difficulty target
482 18:15 <jonatack> pinheadmz: a little higher; less than regtest
483 18:15 <jonatack> which makes sense?
484 18:16 <sipa> regtest has constant difficulty though
485 18:16 <sipa> while signet difficulty can fluctuate to whatever the signer like
486 18:16 <sipa> it's just a minimum
487 18:16 <jonatack> good point
488 18:23 <LarryRuane> How important is it that signet be DDOS-resistant? Is it important and that's why the signing is required?
489 18:24 <sipa> i think it is, to some extent
490 18:25 <LarryRuane> just curious, have people attacked testnet? (I know there have been accidental "attacks")
491 18:25 <jonatack> is anyone else seeing these every couple of minutes on signet? "Disconnecting and discouraging peer 62!"
492 18:26 <jonatack> e.g. "Disconnecting and discouraging peer n!"
493 18:26 <subzero> jonatack I am not and I'm on clearnet
494 18:27 <jonatack> subzero: thanks. in my previous testing i was on clearnet and did not see them either.
495 18:27 <sipa> LarryRuane: bitcoin's normal threat model doesn't consider the cost of block validation to be an issue, as blocks are extremely expensive to create
496 18:27 <Alistair_Mann> Only once, approx two hours ago here
497 18:28 <jonatack> Alistair_Mann: thanks. clearnet or onion?
498 18:28 <subzero> LarryRuane testnet often has highly chaotic behavior, one dev's attack is another dev's test case, there's often times when people need or want certain performance from testnet and there are characteristics of what's going on that are ill suited to that end
499 18:29 <LarryRuane> jonatack I'm not seeing those
500 18:29 <Alistair_Mann> clearnet only here
501 18:29 <jonatack> pinheadmz: after you launched your onion service an hour before the meeting, did you see those on signet?
502 18:30 <jonatack> LarryRuane: thanks
503 18:30 <jonatack> everyone only had one peer?
504 18:30 <jonatack> 18.104.22.168:38333
505 18:32 <Alistair_Mann> Implicit is four peers here:
506 18:32 <Alistair_Mann> 2020-09-09T17:31:49Z New outbound peer connected: version: 70016, blocks=2512, peer=0 (full-relay)
507 18:32 <Alistair_Mann> 2020-09-09T17:31:50Z New outbound peer connected: version: 70016, blocks=4015, peer=2 (full-relay)
508 18:32 <subzero> jonatack getpeerinfo shows only your called out peer, for me
509 18:33 <Alistair_Mann> 2020-09-09T17:31:50Z New outbound peer connected: version: 70016, blocks=2512, peer=1 (full-relay)
510 18:33 <Alistair_Mann> 2020-09-09T17:31:50Z New outbound peer connected: version: 70016, blocks=4015, peer=3 (full-relay)
511 18:33 <Alistair_Mann> 2020-09-09T17:31:51Z Disconnecting and discouraging peer 3!
512 18:35 <subzero> jonatack my debug.log shows I connected to two peers but getpeerinfo shows only one
513 18:36 <subzero> also new signet block released :]
514 18:39 <jonatack> Alistair_Mann: rpc getpeerinfo indicates how many peers for you?
515 18:39 <jonatack> subzero: thanks
516 18:39 <subzero> jonatack do you want me to switch to toronly and test?
517 18:39 <Alistair_Mann> Just 22.214.171.124:38333 right now
518 18:40 <jonatack> subzero: sure. i've been testing listening both or clearnet and onion.
519 18:40 <subzero> jonatack k I will restart with onlynet=onion
521 18:40 <jonatack> Alistair_Mann: makes sense
522 18:54 <subzero> jonatack hmm when I launch onlynet=onion i get "2020-09-09T18:51:45Z Cannot create socket for ntv3mtqw5wt63red.onion:38333: unsupported network"
523 18:55 <Alistair_Mann> I have that - and assumed it's because I'm not running a tor proxy
524 18:58 <jonatack> subzero: how about if you have tor running and just set listen=1 in your bitcoin.conf
525 18:58 <jonatack> and debug=tor if you like
526 18:59 <jonatack> (listen is on by default, unless -connect is used)
527 18:59 <jonatack> so just launch with tor running
528 19:03 <jonatack> subzero: onlynet=onion works for me on signet
529 19:05 <subzero> jonatack hmm maybe something's wrong with my tor setup, I show it running `brew services list` but when I start signnet daemon it cannot connect to tor "tor: Not connected to Tor control port 127.0.0.1:9051"
531 19:06 <sipa> subzero: that's bitcoind trying to automatically create a hidden service for you
532 19:07 <sipa> the warning has no effect on the ability to make outgoing connections through tor
533 19:08 <subzero> sipa ah ty, unfortunately debug still shows "Cannot create socket for ntv3mtqw5wt63red.onion:38333" which I interpret as it's not connecting to the peer's onion address, CMIIW
534 19:09 <sipa> yeah, indeed
535 19:09 <sipa> how are you configuring it?
536 19:10 <subzero> launching daemon with: src/bitcoind -signet -datadir=$HOME/Library/Application\ Support/Bitcoin-signet -onlynet=onion -debug=tor
537 19:10 <sipa> ah you need to specify the tor proxy
538 19:10 <sipa> otherwise bitcoind can't know how to make such connections
539 19:11 <sipa> use -onion=localhost:9050 or so
540 19:11 <jonatack> maybe something like proxy=127.0.0.1:9050 or 9051
541 19:11 <sipa> or -proxy instead of -onion if you also want to use tor for non-hidden-service connections
542 19:15 <subzero> ok bingo! adding -proxy=127.0.0.1:9050 no longer prints debut connection errors. Maybe because I don't understand the communication flow of the sockets but I assumed bitcoin would just try to talk to tor automatically on 127.0.0.1:9050
544 19:18 <subzero> getpeerinfo showing empty though, debug shows two outbound connections, one with blocks=4015 (maybe that is nehan?)
545 19:33 <jonatack> i've tried a few combinations of only onion and onion+clearnet and keep seeing the discouragement messages
546 19:35 <subzero> hmm, I seem to never show any getpeerinfo while onlynet=onion
547 19:35 <jonatack> i have the impression signet might not yet be on speaking terms with everything in the codebase, there may be some rough edges to smooth out
548 19:35 <subzero> maybe this is the reason why: "0 addresses found from DNS seeds"
549 19:35 <subzero> reason I'm not having any getpeerinfo
550 19:36 <jonatack> oh wait... it's not finding my conf file in the signet folder... d'oh
551 19:38 <jonatack> subzero: "0 addresses found from DNS seeds" here too, but that's normal, right?
552 19:38 <subzero> as in, "normal for onlynet=onion"?
553 19:38 <jonatack> normal for signet
554 19:42 <subzero> jonatack I'm not sure of what typical behavior is, but, my debug files never show a non 0 value for that line
555 19:44 <sipa> is there a dns seed for signet at all?
556 19:44 <sipa> seems yes
557 19:45 <subzero> sipa I think there are: "Loading addresses from DNS seed 126.96.36.199" "Loading addresses from DNS seed 2a01:7c8:d005:390::5" "Loading addresses from DNS seed ntv3mtqw5wt63red.onion:38333"
558 19:45 <jonatack> you're right
559 19:45 <jonatack> i see those as well
561 19:48 <aj> sipa: the signet commitment is identified within the witness commitment by 4-byte prefix, not position, so should be compatible with any other usage as long as the prefix doesn't clash
562 19:48 <jonatack> ok i made a new conf file in the right place, and no peers with onlynet=onion
564 19:54 <aj> sipa: (and if there is a prefix conflict, signet will pick the last push, so if the other thing(s) pick earlier ones, it's maybe okay-ish
566 19:55 <pinheadmz> aj that answers my Q as well but design-wise, why not just add a coinbase output thats all your own?
567 19:56 <aj> pinheadmz: no idea!
568 19:56 <pinheadmz> lol ok
569 19:56 <aj> pinheadmz: is tb1q0mpex426da5y2f2q3s5us2469yr7k2hcd0xr07 you?
570 19:56 <jonatack> correction, with onlynet=onion, i still see peers connecting and then being disconnected and discouraged, and one onion peer: vpytsykcl4w4dr2x.onion:38333
571 19:57 <pinheadmz> hm maybe, who wants to know?
572 19:57 <pinheadmz> yes it is
573 19:57 <pinheadmz> aac71ed737fe861f6252b1ec99268d60bddaef0887f61329c4b7fad844c45e91 from faucet
574 19:58 <pinheadmz> oh shit you just made me hella rich
575 19:58 <pinheadmz> just seeing "1,000 BTC" is giving me a stomach ache
576 19:58 <aj> makin' it rain
577 19:58 <pinheadmz> gonna need a few more review clubs lol
578 19:59 <aj> well, there'll be a PR at some point with utils for mining custom signets
579 20:00 <pinheadmz> haha ok
580 20:01 <pinheadmz> oh i misread the blame, the commitment lcoaiton was orignially written by kallewoof
582 20:09 <pinheadmz> welp. I gotta ask more questions on the ML then from now on :-)
584 20:18 <aj> felixweis: master+signet considers taproot spends non-standard, so they won't be relayed or mined. you could get a taproot tx in your own mempool by either setting -acceptnonstd or applying the taproot patches on top and setting activation flags, but your tx won't go anywhere or get mined in that case
585 20:19 <aj> felixweis: i have a patch series that isn't yet updated for the chain restart that does master+signet+taproot, and also uses a service-flag to allow people running that patchset to connect to each other so that the tx would get relayed amongst peers running those patches; and if a peer running one of those patches was also mining, then (in theory) things would work
586 20:19 <aj> felixweis: once things are nailed down a bunch more, maybe it'll be another review club for pinheadmz to run!
587 20:20 <pinheadmz> sure I see. pay me 1000 BTC then reset the chain. nice gag :-P
588 20:20 <aj> no, no chain resetting involved
589 20:22 <aj> (i mean i haven't updated the patch set for the chain restart that just happened the other day)
591 21:10 <felixweis> aj: thanks, very insightful
592 23:03 <subzero> jonatack I have yet to encounter a debug message of "Disconnecting and discouraging peer 62!" while running onlynet=onion
593 23:09 <aj> (the disconnecting and discouraging is just peers running signet code from a couple of days ago before the genesis block update, presumably)
594 23:17 <subzero> aj ah, jonatack and I were poking around thinking maybe it was an issue with onlynet=onion
595 23:18 <subzero> that explanation makes sense because only when I ran on onlynet=onion did a see a peer with much higher chain tip hight ( assume that was before the genesis block update
596 23:22 <aj> subzero: 4015 was the height of the old chain, i think
597 23:22 <subzero> aj yep that was it
598 23:22 <aj> the new chain has more work though, despite the lower height (log2_work=32.804431 vs log2_work=33.995256)
599 01:40 <kallewoof> once signet is merged into core, and has been rebased in the taproot pull request, it shouldn't be very hard to get taproot enabled on signet
600 07:07 <jonatack> aj: i hope so, i've seen 100+ messages like that over the past 12 hours
601 07:09 <jonatack> aj: that does make sense though