< midnightmagic>
20 years and 20 years of harsh, harsh.. harsh bugs ago.
< dongcarl>
I've been talking to the guys behind guix, and it seems that they have a very system for enabling reproducible builds and have made a lot of progress towards bootstrapping from hex0: https://github.com/oriansj/stage0
< dongcarl>
hex0 is a ~500 byte self-hosting hex assembler
< dongcarl>
I will attempt to complete reproducible builds successfully with guix, and in the future help with hex0 integration
< dongcarl>
This means that auditing hex0 will give us confidence in not having trusting trust problems
< dongcarl>
they have a very good system*
< sipa>
dongcarl: cool
< fanquake>
dongcarl is that going to be up in a repo somewhere?
< dongcarl>
fanquake: For the part of completing reproducible builds of bitcoin with guix, I might write up some instrucitons to do so when I sort out the current sources of non-determinism (I think qt is the culprit right now)
< dongcarl>
For the hex0 bootstrap to guix, I haven't learned enough to know yet, but will probably end up writing scripts to do so, so yes, a repo will be appropriate for that
< fanquake>
dongcarl ok, cool
< booyah>
dongcarl: maybe a goal in the end, should be to provide compiler not from C++, but from some IR language, like maybe from llvm
< dongcarl>
booyah: not 100% sure what you mean
< booyah>
and have compiler(s) compiler bitcoin into that IR, and have identical IR from them
< booyah>
just because C++ compiler might be too complex to ensure it has no bugs/backdoors
< dongcarl>
booyah: that's the point of hex0
< dongcarl>
You just audit a single piece of assembly
< booyah>
yes. I mean the next steps after that
< dongcarl>
Ah I see
< booyah>
I hope it will focus on writting IR -> asm
< booyah>
not just compiling entire gcc as a whole
< dongcarl>
Yeah... Lots to do...
< dongcarl>
One at a time haha
< booyah>
best if separate compilers eg gcc and lvm could produce identical (and ofc reproducible) IR, to crosscheck between two compilers against compiler bugs
< sipa>
booyah: that seems unreasonable
< booyah>
*clang
< booyah>
sipa: you find it more likely to verify entire g++ enough that everyone can be quite sure there is no bug in it's code generation?
< booyah>
*its
< dongcarl>
booyah: I think it is more likely that the plethora of gcc/g++ developers will be better at finding bugs than the very few developers who will work on IR -> ASM
< bitcoin-git>
[bitcoin] instagibbs opened pull request #15212: Remove errant paste from walletcreatefundedpsbt meant for replaceable (master...wcfpsbt_paste_err) https://github.com/bitcoin/bitcoin/pull/15212
< sipa>
booyah: no, i think both are pretty much unachievable :)
< booyah>
ok so then from other side, holly grail for unhackable (by anyone) node would be... run e.g. 2 nodes (different open hardware, compiler etc) and cross-check ballances on both, and transact using 2-of-2 multisign?
< bitcoin-git>
[bitcoin] instagibbs closed pull request #15212: Remove errant paste from walletcreatefundedpsbt meant for replaceable (master...wcfpsbt_paste_err) https://github.com/bitcoin/bitcoin/pull/15212
< fanquake>
instagibbs pretty sure that line is still in master
< fanquake>
Just all the RPCHelpMan changes have gone in
< bitcoin-git>
[bitcoin] instagibbs opened pull request #15213: Remove errant past from walletcreatefundedpsbt for nLocktime replaceable (master...wcfpsbt_paste_err) https://github.com/bitcoin/bitcoin/pull/15213
< instagibbs>
fanquake, yeah git told me something I didn't verify, my bad
< bitcoin-git>
[bitcoin] practicalswift opened pull request #15214: Improve tests by checking for expected return values (master...check-return-values-in-tests) https://github.com/bitcoin/bitcoin/pull/15214
< wumpus>
different compilers producing identical IR? that sounds exceedingly unlikely, even undesirable, compiler projects compete for producing the best code
< wumpus>
I guess at least theoretically you could test the *parser* that way, parse trees ought to be similar enough to be comparable between compilers, but anything that's been through any kind of lowering or optimization pass, forget it
< bitcoin-git>
[bitcoin] practicalswift opened pull request #15215: rpc: Use the return value of GetProxy(...) in GetNetworksInfo(). Mark GetProxy(...) with [[nodiscard]]. (master...getnetworkinfo-getproxy) https://github.com/bitcoin/bitcoin/pull/15215
< bitcoin-git>
[bitcoin] hebasto opened pull request #15216: Scripts and tools: Replace script name with a special parameter (master...20190120-improve-shell-ux) https://github.com/bitcoin/bitcoin/pull/15216
< bitcoin-git>
[bitcoin] hebasto opened pull request #15217: Wallet: Remove "-Wunused-variable" warning while build with "--disable-wallet" option (master...20190120-unused-variable-warning) https://github.com/bitcoin/bitcoin/pull/15217