< bitcoin-git>
bitcoin/master 54729f3 Andrew Chow: Add libsqlite3
< bitcoin-git>
bitcoin/master e87df82 Andrew Chow: Add sqlite to travis and depends
< bitcoin-git>
bitcoin/master 7577b6e Andrew Chow: Add SQLiteDatabase and SQLiteBatch dummy classes
< bitcoin-git>
[bitcoin] meshcollider merged pull request #19077: wallet: Add sqlite as an alternative wallet database and use it for new descriptor wallets (master...sqlite-wallet) https://github.com/bitcoin/bitcoin/pull/19077
< bitcoin-git>
bitcoin/master 6020ce3 Gregory Sanders: DecodeHexTx: Try case where txn has inputs first
< bitcoin-git>
bitcoin/master 27fc6a3 Gregory Sanders: DecodeHexTx: Break out transaction decoding logic into own function
< bitcoin-git>
bitcoin/master 3956165 Wladimir J. van der Laan: Merge #17775: DecodeHexTx: Try case where txn has inputs first
< bitcoin-git>
[bitcoin] laanwj merged pull request #17775: DecodeHexTx: Try case where txn has inputs first (master...decode_wit_first) https://github.com/bitcoin/bitcoin/pull/17775
< kallewoof>
Won't be at meeting but my 2 sats on signet and taproot activation: I don't think there's a reason to delay activation. My suggestion is to set activation for a week or so from now (long enough for a trivial pull request to get ACKs and be merged + to update the servers issuing blocks). I guess the question is whether this is affected by feature freeze or not. If it is, I suggest we activate it after 0.21 branch split in
< kallewoof>
master only.
< kallewoof>
If people want to try out the actual real taproot activation mechanism for activation on signet, the story changes I guess.
< sipa>
kallewoof: the nice thing about signet is that really consensus rules are decided by the signers - even if the rest of the network doesn't enforce
< sipa>
the reason i brought it up is that i realize that master will now relay (valid) taproot spends... which may be unexpected, and feels wrong without activation plan
< kallewoof>
sipa: yeah, but p2p layer is affected... propagation can be delayed or fail unless one peer is a miner
< kallewoof>
sipa: in pre-activation? i thought it policy-rejected
< sipa>
kallewoof: no
< sipa>
i think segwit had special rules about relay before activation, because it was also a p2p change
< kallewoof>
ohh! i didn't realize that.
< aj>
sipa: (if the network enforces rules prior to "real" activation, and there's a hard-fork, you need more than just signers to fix things up)
< aj>
sipa: (probably no need for hard-forks in the taproot implementation now though so, whatevs)
< sipa>
the last softfork before that, CSV, was implemented & activated in the same release, 0.12.1
< sipa>
but i think we should disable relay for networks which have no activation defined (i.e., all but regtest and maybe signet)
< kallewoof>
sipa: my vote is to keep it enabled on signet, as that means we can just flip it on whenever and it will just work™️
< kallewoof>
I get the sneaky suspicion that enum class with bit fiddling is... not the way to go. Tempted to just do const uint8_t's and skip the enum part altogether..
< bitcoin-git>
[bitcoin] S3RK opened pull request #20153: wallet: do not import a descriptor with hardened derivations into a watch-only wallet (master...importdesc_silent_fail) https://github.com/bitcoin/bitcoin/pull/20153
< jamesob>
wow, big merge day. congrats sipa, achow101!
< kallewoof>
andytoshi: hope you didn't spend too much time on your implementation. I have begun working on a rough implementation of BIP 322 support here, FYI: https://github.com/bitcoin/bitcoin/pull/20154
< andytoshi>
kallewoof: no, i spent about 30 minutes on it :) the old spec was super straightforward (at least, with the existing rust-bitcoin/miniscript infrastructure i have)
< andytoshi>
the new spec is bigger but i think will integrate much better with my descriptors library
< kallewoof>
andytoshi: it seems to integrate really well with bitcoin core, from what i can tell so far. the old code was a split out thing of its own
< kallewoof>
andytoshi: cool to hear you're working on it. feedback and such super welcome :)
< andytoshi>
right, that's also what was going to happen with the rust-miniscript implementation ... de/serialization was easy but then providing a usable sign/verify API seemed pretty unnatural. i think this one will be better because i can write a function that takes a descriptor + message and converts it to a to_spend transaction
< andytoshi>
(and i guess now, will also take a value ... i'm curious why you changed this this morning...i don't have strong feelings either way, i just don't understand it)
< kallewoof>
andytoshi: uh... i somehow thought the sum of amounts was required in the signature, but now that you mention it, i think i was confused..
< kallewoof>
andytoshi: I'll revert that one now. Thanks for pointing it out
< andytoshi>
cool :) the value made it a little harder, API-wise, because it means that you need to know upfront whether you're going to use the to_spend purely as a dummy input when proving funds, or not (and you have to konw how many funds you're planning to prove)
< andytoshi>
you sorta have to know this now, in choosing whether to use an OP_TRUE descriptor or a "real" one
< kallewoof>
andytoshi: that makes sense -- yeah, i think i managed to convince myself that the signatures commit to the amounts, so we need to have those available and why not just stuff them in the virtual to_sign tx... but that's not how it works at all.
< luke-jr>
oh blah, sqlite isn't optional? :/
< * MarcoFalke>
updates all build scripts to install sqlite-dev
< MarcoFalke>
This is probably the first time a dependecy has been added in years. Others were only removals.
< * luke-jr>
begins on a PR to fix it optional
< * kallewoof>
calls it a day at "checker.CheckECDSASignature(vchSig, vchPubKey, scriptCode, sigversion)" returning false. :) Will compare sighashes tomorrow. Maybe I should've implemented this in btcdeb first.
< andytoshi>
kallewoof: sounds good, hopefully i'll have some test vectors in the next 6-8 hours we can compare
< jamesob>
anyone ever seen "/usr/bin/ld: error: [...]: <corrupt x86 property (0xc0000002) size: 0x8>" during compilation before? I'm getting a truckload of them, but compilation seems to succeed anyway. Think it has to do with having installed the debian gcc-9 package, but not sure. Google turns up nothing.
< promag>
does it make sense to support multiple -blocksdir where one is rw but the others are ro? so that older blocks can be kept on a slower disk?
< yanmaani>
promag: you may be interested in overlayfs
< yanmaani>
or just some caching setup
< luke-jr>
promag: probably
< promag>
yanmaani: yes, I though about that, but then in instead of prunning it would move blocks the the other place
< luke-jr>
promag: needs some thought, though, as it also makes sense to move them automatically
< promag>
luke-jr: right
< yanmaani>
uh, how are you going to automatically move blocks to a RO fs?
< luke-jr>
FWIW Signet may be broken on master since it lacks Taproot activation params
< promag>
yanmaani: no, I mean RO as in bitcoind doesn't writes new blocks there
< yanmaani>
the simple solution is to have a cronjob that checks mtime/ctime and moves+symlinks them
< yanmaani>
oh, not a RO fs
< yanmaani>
just do overlayfs or something IMO
< promag>
not ro fs, "RO" -blocksdir
< promag>
yanmaani: I understand this can be overcome out of bitcoind, but the idea would be to add a -prunestrategy=archive for instance
< luke-jr>
yanmaani: for example, it can be an external drive you unplug when you leave home
< promag>
just a thought..
< luke-jr>
and blocks would just not prune-to-slow-storage while you're away from home
< luke-jr>
when you get back, then they move
< yanmaani>
luke-jr: But then you have a problem when you start bitcoind in such cases, no?
< promag>
luke-jr: exactly
< luke-jr>
and if you need to use (eg) a rescan RPC, you plug in the drive
< promag>
it can be copy first, then delete old
< luke-jr>
yanmaani: that's exactly what this would avoid
< yanmaani>
I guess if you have the DB, yeah. Couldn't it just ignore missing blocks until they're needed?
< promag>
yup
< yanmaani>
so you can do whatever you want and bitcoind will just deal with it
< promag>
this might interact with assumeutxo cc jamesob
< yanmaani>
instead of re-implementing overlayfs in bitcoin core
< promag>
yanmaani: overlayfs is cool if you dont care where each file is stored
< promag>
and it's platform dependant
< yanmaani>
you can move them around by yourself though
< yanmaani>
or just set a cronjob to move+symlink
< promag>
yes I could
< promag>
or have it automatic
< jamesob>
promag: should be compatible with assumeutxo since blocksdir access is largely unchanged; blocks have always come out of order anyway
< jamesob>
well... not always, but for a while :)
< promag>
jamesob: but what happens if you have to validate and a block isn't there?
< jamesob>
promag: validation doesn't require access to blockfiles per se because all the data you're relying on is stored in (i) the headers chain and (ii) the utxo set
< bitcoin-git>
[bitcoin] luke-jr opened pull request #20157: Bugfix: chainparams: Add missing (disabled) Taproot deployment for Signet (master...signet_taproot_fix) https://github.com/bitcoin/bitcoin/pull/20157
< sipa>
phantomcircuit: to be clear, the bip340 signing algorithm is deterministic if no auxiliary randomness is used
< phantomcircuit>
jeremyrubin, not if they will, but if they can, which sipa has answered
< sipa>
but nobody is required (or can be verified to) follow that algorithm
< phantomcircuit>
sipa, yeah i understand now, i was confused by the bip340 language about malleability
< sipa>
there is one context where we actually treat someone with a private key as an attacker in BIP340, and it's a rather unusual requirement: nobody (even those with private keys) should be able to construct a signature for which the single-sig validation and batch-validation algorithm produce a different result (with more than negligible probability)
< phantomcircuit>
i thought that my original reading was unlikely so im here asking :)
< sipa>
well, i don't think it should be an unusual requirement - but in practice it seems it's not part of the standard attack model for signatures
< phantomcircuit>
sipa, indeed cause then you could validate a transaction that is then rejected by block validation, would be a nasty issue
< bitcoin-git>
bitcoin/master 3069b56 Amiti Uttarwar: [doc] Improve help for getpeerinfo connection_type field.
< bitcoin-git>
bitcoin/master 41dca08 Amiti Uttarwar: [trivial] Extract connection type doc into file where it is used.
< bitcoin-git>
bitcoin/master 9ad7cd2 Wladimir J. van der Laan: Merge #20090: [doc] Tiny followups to new getpeerinfo connection type fiel...
< bitcoin-git>
[bitcoin] laanwj merged pull request #20090: [doc] Tiny followups to new getpeerinfo connection type field (master...2020-09-getpeerinfo-conn-type-release-notes) https://github.com/bitcoin/bitcoin/pull/20090
< wumpus>
#startmeeting
< lightningbot>
Meeting started Thu Oct 15 19:00:27 2020 UTC. The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.
< gribble>
https://github.com/bitcoin/bitcoin/issues/19933 | wallet: bugfix; if datadir has a trailing / listwalletdir would strip lead char of walletname by Saibato · Pull Request #19933 · bitcoin/bitcoin · GitHub
< luke-jr>
oh yes, one of those are important to get in ☺
< wumpus>
jonatack: i'm not convinced #19874 is really a bugfix
< luke-jr>
20080 should get 0.19.x and 0.20.x tags too I think
< wumpus>
promag: sounds like a feature to me
< MarcoFalke>
luke-jr: It already has
< wumpus>
(though maybe a necessary one, I don't' know)
< luke-jr>
o
< bitcoin-git>
[bitcoin] meshcollider closed pull request #19933: wallet: bugfix; if datadir has a trailing '/' listwalletdir would strip lead char of walletname (master...wallet-fix-missing-chars-boost-1.47) https://github.com/bitcoin/bitcoin/pull/19933
< jonatack>
agree with promag about 20125
< wumpus>
luke-jr: let's discuss the 0.21 milestone now not other ones
< wumpus>
ok adding 20125...
< promag>
wumpus: not really... just adds "format" key to the rpc response
< wumpus>
well it's not a bugfix at least
< wumpus>
but I don't care it seems minimal enough
< promag>
wumpus: right
< wumpus>
that concludes the topic I guess
< luke-jr>
I'm not sure it makes sense to expose that detail, but meh
< sipa>
i think that's undesirable, at least until activation is defined, or even until actually activated
< * luke-jr>
did suggest splitting that out of the PR a few months ago :P
< sipa>
luke-jr: well, we do want it on regtest
< luke-jr>
regtest supports acceptnonstdtxn, but ok
< sipa>
talking to sdaftuar a bit, i think we should just reject creation and spending of v1 outputs until taproot is _active_
< sipa>
as a policy rule (not through script validation, which is more invasive)
< sipa>
or at least creation as soon as an activation is defined
< sipa>
(so that the behavior on mainnet before an activation is defined is essentially as if it didn't exist at all)
< sipa>
i can open a PR/issue and discuss further there
< sipa>
but i wanted to bring this up, as it may be unexpected that master is now doing taproot validation on the mempool
< wumpus>
I think that makes sense, to do that as a policy rule
< MarcoFalke>
so the spends would be valid taproot spends (with witness) only?
< sipa>
so right now: all v1 creation is relayed, v1 spends are relayed only if valid according to taproot rules
< ariard>
is there any disadvantage of doing this?
< sipa>
my proposal: v1 creation is not relayed while taproot activation is defined but not yet active; v1 spending is only relayed after being actually active
< provoostenator>
Why not always relay?
< MarcoFalke>
provoostenator: Someone will give away their coins, surely
< provoostenator>
Doesn't seem ideal to have a bunch of nodes out there not relaying v1 transactions.
< sipa>
provoostenator: they'd all start relaying as soon as activation happens
< sipa>
before that point, we don't care
< ariard>
sipa: so you want to hardcode the loosening policy change based on the consensus activation IIRC ?
< luke-jr>
well, activation isn't in 0.21.0, so not these
< sipa>
luke-jr: indeed, the only effect on 0.21.0 would be making spending of v1 non relayed
< jnewbery>
sipa: what's the difference between 'not relayed while taproot activation is defined but not yet active' and 'only relayed after being actually active'
< provoostenator>
Did we relay v1 to/from transactions before taproot was merged?
< sipa>
jnewbery: creation would be relayed as long as no activation parameters are set (the idea being that without activation parameters, it should be treated as an unknown future upgrade that can still change)
< aj>
jnewbery: 0.21.0 will be not-defined and not-active, so will always relay creation of taproot outputs, but not spends of them
< sipa>
maybe this is a simpler principle: before activation is _defined_, behavior should be identical to before taproot was merged
< aj>
sipa: i'm not sure it makes much sense to make it harder to spend a taproot output than to create one? creating one before activation is how you lose money?
< jeremyrubin>
aj: i thought we checked outputs standardness?
< jnewbery>
sipa aj: thanks
< aj>
jeremyrubin: 15846
< luke-jr>
aj: the spend we make harder, may be a theft
< aj>
luke-jr: prior to activation miners can spend trivially
< luke-jr>
aj: miners don't rely on others' policy
< sipa>
aj: my suggestion is that relay of creation and spending only differs before activation is defined... to match pre-taproot-implemented behavior
< sipa>
after activation is defined, both are disallowed until it is actually active
< luke-jr>
(OT: wumpus: #19502 should probably get milestoned)
< sipa>
aj: which is ultimately due to softfork safeness... if we treat taproot as subject to change still (which i think we should until activation is defined), we shouldn't permit spending it to be relayed
< wumpus>
luke-jr: ok
< jeremyrubin>
has that been reverted though somehow?
< sipa>
jeremyrubin: what?
< jeremyrubin>
looking at the current code and I'm not seeing that logic still
< aj>
sipa: right, immediately after activation (supported by 0.21.1 say), you have all nodes relaying creation, but only 0.21.1 nodes relaying spends. vs having 0.21.0 and 0.21.1 nodes validating and relaying spends if we leave things as they are now
< jeremyrubin>
Ah
< jeremyrubin>
it went into Solver
< sipa>
aj: i think permitting spends right now is bad... it's just gratuitous policy difference between 0.21 and pre-0.21 nodes
< sipa>
the extra rule for suspending relay of outputs is user protection before activation
< sipa>
anyway, will open an issue
< aj>
sipa: the principle (no behaviour change prior to activation) makes sense, just doesn't seem like it has much benefit (people still lose money if they create outputs earlier, because miners will claim them via a non-std tx) and slight costs (will make relay slightly harder due to implementation-but-no-activation nodes not relaying)
< wumpus>
20 minutes left, we might want to move to the next topic
< sipa>
aj: if their own node rejects relay, miners will never see the tx :)
< luke-jr>
sipa: no reason their own node would :P
< wumpus>
#topic Getting BIP 8 logic in before freeze (luke-jr)
< luke-jr>
I've implemented the current BIP 8 as logic only (no activations) in #19573. This is probably not the final BIP 8 (aj's been working on some revisions), but having it merged in 0.21 means we can have a smaller diff to add Taproot activation later.
< luke-jr>
Would be nice to get this merged before 0.21.0rc1 if possible. Anyone who wants to help review (or other) can join ##taproot-activation to help get this done quickly.
< luke-jr>
Note the PR depends on #19401 and #20157. These are fairly trivial, and the former already has 2 ACKs.
< wumpus>
i don't know, it does feel a bit rushed to me, to merge something (that should be a no-op otherwise) last minute just to minimize the diff later, especially when we don't even know yet if it's the final state of the BIP
< wumpus>
not a small project either
< luke-jr>
hmm, true
< sipa>
no strong opinion... it doesn't seem very invasive, but on the other hand, this can also easily be backported along with actual activation parameters
< sipa>
it also may turn out to be wasted effort
< luke-jr>
not sure how it could be wasted effort
< luke-jr>
sipa: your topic, you had mentioned signet/testnet activation - that might or might not be a reason to do this sooner
< jeremyrubin>
i think it makes sense to wait for cleaner git history
< luke-jr>
jeremyrubin: I'm assuming the two trivial PRs would be merged first as part of this process
< sipa>
oh right, i didn't bring that up... do we want to define an activation on testnet?
< sipa>
that's something that was done historically, but with signet i think there may be less need now
< luke-jr>
I think it makes sense to test BIP 8 with testnet
< wumpus>
it should activate there at some time i guess
< sipa>
always possible in .1 or whatever point release too, of course
< aj>
probably shouldn't activate on testnet with a different activation method than we plan on using for mainnet?
< luke-jr>
sipa: true
< luke-jr>
maybe that's a good solution: testnet in .1, and mainnet not until .2
< sipa>
it'd be nice to see things active on signet first before suggesting testnet changes
< wumpus>
sipa: right
< aj>
kallewoof's not awake, but i was thinking maybe lock taproot as it stands in immediately on the default signet, and if worst comes to worst just restart the signet chain if needed
< sipa>
(as in signet it can be rolled out without code changes...)
< wumpus>
that's great
< luke-jr>
signet doesn't even need an activation, does it?
< luke-jr>
just always-active?
< MarcoFalke>
wait, if spends are made non-standard, it needs conde changes for signet
< aj>
sipa: (not-relaying taproot-txs if activation hasn't happened will affect the "without code changes" part a bit
< aj>
luke-jr: yeah, that's what i'm thinking
< aj>
luke-jr: (i mean, "always-active" is an activation)
< luke-jr>
the policy changes sipa suggested are conditional on the deployment state AFAIK?
< MarcoFalke>
so I guess s/without/minimal/
< aj>
luke-jr: right, but *nodes* have to know the deployment state in that case, not just miners
< luke-jr>
so always-active would trigger the spending policy
< sipa>
i think we can flesh these things out the next few days
< aj>
yep
< luke-jr>
yeah, let's give jeremyrubin some minutes ☺
< jeremyrubin>
i need like 1 min
< jeremyrubin>
so no rush
< wumpus>
#topic Small announcement on behalf of BGIN (jeremyrubin)
< jeremyrubin>
Matsuo has asked me to share the following
< jeremyrubin>
FYI bgin-global.org is hosting an event for core devs the first week of Nov, please fill out this form https://forms.gle/99yUnQdtAkAwt5SW7 to assist scheduling or email schwentker@bsafe.network with any questions. Goal of the event is to help core dev sustainability, so should be of interest for all here.
< jeremyrubin>
it's the sort of name that you have to have to get intl participation from people in intl financial regulation
< luke-jr>
jeremyrubin: lol
< jeremyrubin>
so it's started by Matsuo and others
< jeremyrubin>
the point being that a lot of various regulators want to chat about how Bitcoin works and how they engage, but also understanding how standards emerge
< jeremyrubin>
But a part of that is they want to understand and potentiall support development through research grants
< wumpus>
that sounds pretty scary tbh
< jeremyrubin>
so it's maybe folk you'd rather not talk to at all depending on your preferences, but it is a good faith effort afaict
< jeremyrubin>
:shrug:
< jeremyrubin>
I'd encourage you to email concerns to schwentker@bsafe.network
< luke-jr>
jeremyrubin: it sounds like they're just giving webinars and we'd simply watch it? O.o
< jeremyrubin>
no i don't think so
< jeremyrubin>
I think they want to hear from you directly
< MarcoFalke>
end meeting?
< wumpus>
ok, I think everything is said, thanks for the announcement
< wumpus>
#endmeeting
< lightningbot>
Meeting ended Thu Oct 15 20:00:46 2020 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)
< luke-jr>
jk, maybe should tell them to get rid of the travel rule tho ;)
< jeremyrubin>
I mean, there are practical things that are relatively improtant to engage them on
< jeremyrubin>
E.g., travel rule
< luke-jr>
jeremyrubin: yeah, joking
< jeremyrubin>
do you owe taxes on BCash
< luke-jr>
not anymore
< emzy>
jeremyrubin: I also find it strange. But can I as a none dev also join?
< jeremyrubin>
If you had a contract denom in Bitcoin do you owe BCash and Bitcoin after a fork?
< luke-jr>
emzy: who is to say you're not a dev? ;)
< achow101>
luke-jr: re: sqlite and descriptors. The intention for the foreseeable future is sqlite == descriptors and descriptors == sqlite. So adjust #20156 accordingly
< sipa>
achow101: no way to convert legacy bdb wallets to legacy sqlite ones?
< jeremyrubin>
Anyways, i don't think there is malintnet but up to you to give benefit of the doubt or express concerns to them directly
< jeremyrubin>
i am a mere herald
< aj>
"legacy sqlite" wow, already :)
< luke-jr>
wumpus: 20156 missed milestoning
< luke-jr>
aj: lol
< sipa>
aj: legacy meaning non-descriptor
< jeremyrubin>
emzy: I think you'd be fine to join, just fill out the form
< achow101>
luke-jr: to enforce that descriptor wallets can't be made of sqlite is disabled. Dunno of you already did that, still going through my email backlog
< aj>
sipa: yeah :)
< emzy>
jeremyrubin: I did. At least I can tell you here what happend :)
< luke-jr>
achow101: I didn't remove any code enforcing it, at least
< achow101>
sipa: maybe dump them createfromdump, but I'm not intending on making a migration for it
< jeremyrubin>
emzy: wat?
< emzy>
jeremyrubin: I submitted the form.
< sipa>
achow101: well the question is if the format should be supported i think, regardless of how someone can create it
< luke-jr>
error = Untranslated(strprintf("Failed to load database path '%s'. Data is not in required format.", path.string()));
< luke-jr>
I guess that error could be clearer
< luke-jr>
or maybe just remove descriptor support entirely
< sipa>
it's ok to say non-descriptor-sqlite wallets are unsupported
< jonatack>
achow101: right, the main reason for adding a db format field to getwalletinfo or -getinfo is because a bdb wallet can be descriptor
< sipa>
if we don't test that
< sipa>
but whatever combinations are supported should be tested
< wumpus>
i'm all for not supporting too many combinations
< sipa>
and those that aren't should at least get a warning
< wumpus>
be careful here, anything you support for the wallet needs to be support for pretty much near forever
< sipa>
(or otherwise be impossible to create)
< achow101>
luke-jr: I'll have a look when I get home, but I was intending on writing a full without-bdb and without-sqlite thing that disabled legacy or descriptors respectively
< wumpus>
as those files will be around for a long time
< wumpus>
it's also confusing for users
< wumpus>
two types of wallet is enough, avoid the combinatorial cmplexity
< sipa>
yeah
< sipa>
that's fair
< achow101>
jonatack: I think that's useful for experts who do unsupported things, but for most users, the format should be tied to the type
< jeremyrubin>
2**256 wallets for added security
< bitcoin-git>
[bitcoin] dongcarl closed pull request #20050: validation: Prune (in)direct g_chainman usage related to ::LookupBlockIndex (bundle 1) (master...2020-09-libbitcoinruntime-v4) https://github.com/bitcoin/bitcoin/pull/20050
< wumpus>
heh
< achow101>
sipa: I think it will be supported but not recommended, aka you had to jump through a lot of hoops to get to legacy sqlite
< sipa>
yeah, ok
< luke-jr>
i can use sqlite wit uncompressed pubkeys?
< luke-jr>
:P
< achow101>
sure
< achow101>
Descriptora can have uncompressed keys
< luke-jr>
:o
< luke-jr>
I meant the old wallet format tho
< luke-jr>
we should probably drop support for that.. it isn't actually compatible post-segwit anyway :x
< sipa>
you mean sqlite non-descriptor with uncompressed keys?
< achow101>
Yeah but you and Matt will complain about it
< luke-jr>
lol
< luke-jr>
Qt should stop using camelcase so I don't need to guess at if they did ToolTip or Tooltip
< achow101>
Is actually toolTip
< luke-jr>
)(%#&)#_)#
< luke-jr>
(I'm actually calling SetToolTip, so it's okay)
< promag>
descriptors:true wallet doesn't mean it's sqlite right?
< promag>
only true starting with 0.21, at least that's my understanding
< achow101>
yes
< promag>
that's why I'm suggesting "format" in getwalletinfo response
< promag>
nit, and maybe in the gui we could have some thing/icon/whatever for these things - like getwalletinfo
< luke-jr>
promag: descriptors:true will mean sqlite in all supported configurations AIUI
< promag>
luke-jr: you can still open a 0.20 descriptors wallet?
< luke-jr>
promag: 0.20 doesn't support descriptors
< aj>
luke-jr: ccache doesn't directly, but the path ends up going into the preprocessed source somewhere or something which makes ccache's input different each time... not sure how though now that i look
< aj>
oh, i'm wrong, ccache has a `hash_dir` flag that makes it hash the working dir, and it's -g that puts the working dir in the .o files
< sipa>
still, worktrees are very useful
< sipa>
i have separate ones for fuzzer builds (so i don't need to re-run ./configure with the fuzzer flags all the time)
< sipa>
and sanitizer builds
< sipa>
you can't checkout the same branch in two worktrees simultaneously, but you can use git checkout --detach in one to just switch to code of a branch in another
< luke-jr>
aj: it being in the .o should be okay?
< luke-jr>
sipa: you can checkout the same branch if you really want to :D
< sipa>
luke-jr: how so?
< sipa>
is there some --use-the-force option?
< luke-jr>
IIRC
< luke-jr>
--force
< sipa>
if anyone gets this warning with gcc 9, it's a compiler bug (which just produces a bogus warning):
< luke-jr>
btw, why do we use "org.bitcoinfoundation.Bitcoin-Qt" on macOS?
< jb55>
awkward
< phantomcircuit>
luke-jr, iirc wasn't gavin the one signing the macos builds?
< phantomcircuit>
probably just legacy from that
< sipa>
i think changing it was brought up before, but would break compatibility with existing settings so wasn't done?
< sipa>
(it's awkward that it was ever set to that - even when the foundation was actively sponsoring developers - but little that can be done about that now)
< luke-jr>
sipa: it doesn't look like it would from the context :/
< sipa>
there is some discussion about it in #17462
< promag>
achow101: is there anything preventing swaping CWallet::database in runtime? so 1) load with bdb 2) swap database 3) write all ?
< promag>
*swap to sqlite
< achow101>
promag: you might end up missing a few records
< achow101>
I'd definitely wouldn't recommend doing that
< promag>
not all records are loaded ok
< achow101>
promag: all records are loaded, it's just a matter of making sure that "write all" wrote them all
< achow101>
there's no existing "write all"
< promag>
oh ok
< luke-jr>
all records might not be loaded
< luke-jr>
IIRC moves don't
< achow101>
there are some records that aren't loaded because they aren't useful, just kept around for back compat. obviously back compat doesn't matter if you move to sqlite
< phantomcircuit>
sipa, iirc the foundation was paying for the certificate, something about it being easier for a "foundation" to get one than for an individual
< luke-jr>
achow101: uh, pretty sure we still show them
< phantomcircuit>
who knows if that was true or if it was pretextual though..
< achow101>
luke-jr: no? I mean things like "default key" or the original "version"
< achow101>
(version is now "minversion")
< promag>
don't see a reason to remove load-bdb, that way the user could just send the funds to new wallet and we wouldn't have to do the migration tool
< achow101>
The surefire way to migrate format is to grab a cursor on the original db, iterate it, and write every key/value pair in the new db
< luke-jr>
achow101: well, I don't think moves get loaded either
< achow101>
luke-jr: moves as in the old move rpc?
< luke-jr>
yes
< achow101>
I thought those records just got renamed and redefined for labels
< luke-jr>
what?
< promag>
bdb2sqlite.py incoming
< achow101>
but also, that's for back compat, and if you are going to sqlite, back compat doesn't matter
< luke-jr>
achow101: I would be annoyed if migrating my wallet lost data