04:04 |
jurov |
great summary! i've only meddled a bit with trb mempool and then tuned out |
| |
~ 10 hours 8 minutes ~ |
14:12 |
jfw |
http://logs.nosuchlabs.com/log/therealbitcoin/2020-05-15#1000235 - from mod6's article I got the idea that his was still a halfway-fix, and yours still flagged experimental. I thought I'd wait for a finished thing before digging into it. Did I miss such a thing? |
| |
↖ ↖ |
14:12 |
snsabot |
Logged on 2020-05-15 15:26:19 asciilifeform: http://logs.nosuchlabs.com/log/therealbitcoin/2020-05-15#1000138 << btw i notice the wedge pill aint in there. may be 1 reason why jfw's box can't sync . |
14:13 |
jfw |
don't think the 'wedge' is afflicting me though, RPC remains responsive. |
14:15 |
jfw |
http://logs.nosuchlabs.com/log/therealbitcoin/2020-05-15#1000239 - this is the right direction imo; the builtin wallet is awful in many ways (for starters: insists on spilling pregenerated keys to disk *before allowing you to encrypt*) |
14:15 |
snsabot |
Logged on 2020-05-15 16:45:20 trinque: I have a patch on my desk that cleaves off the entire wallet and stuff only used by wallet |
14:16 |
jfw |
and lots of pointless db abstractions and machinations, and some of the locking horrors, go into supporting it |
14:18 |
asciilifeform |
hm jfw for some reason i thought you already baked a trb w/ walletism cut ( and replaced with lispy wallet thing ) |
14:18 |
jfw |
I made a fully-external and airgap-friendy wallet, yep; didn't yet go cutting on the cpp. |
14:18 |
asciilifeform |
ah |
14:18 |
trinque |
happy to dust this thing off then, will do sometime this weekend. |
14:19 |
jfw |
I think some export mechanism for old wallet.dat's would be important before fully ditching it though. |
14:19 |
trinque |
carved off key generation and address generation into a keyutil proggie too, but might be irrelevant with your thing. |
14:19 |
jfw |
because of the 'serialized blobs dumped in a key-value store' approach to database, doesn't yield to commodity tools. |
14:20 |
trinque |
sure, or just the "I found a wallet.dat, wat dis" scenario |
14:20 |
asciilifeform |
http://logs.nosuchlabs.com/log/therealbitcoin/2020-05-16#1000278 << this is half-correct : the patch asciilifeform & mod6 baked, caps the mass of reply to 'getdata' for blox, but not tx. but thus far no one has observed a wedge powered by requesting mempool tx ( both asciilifeform and mod6 tried to make one artificially, and mod6 iirc wrote a debug log parser to look for 'heavy' tx, to throw in 'wedger' . ) |
14:20 |
snsabot |
Logged on 2020-05-16 14:12:41 jfw: http://logs.nosuchlabs.com/log/therealbitcoin/2020-05-15#1000235 - from mod6's article I got the idea that his was still a halfway-fix, and yours still flagged experimental. I thought I'd wait for a finished thing before digging into it. Did I miss such a thing? |
14:20 |
trinque |
always going to want to be able to extract those. |
14:21 |
shinohai |
asciilifeform: do u haz signed keccak genesis for trb ? |
14:21 |
asciilifeform |
( 100% proper patch would cap both. but neither of us at the time was immediately able to figure out how to use the internal knobs to determine tx mass ) |
14:21 |
trinque |
shinohai: iirc mod6 reground the whole tree |
14:21 |
asciilifeform |
shinohai: it's on mod6's www |
14:22 |
asciilifeform |
shinohai: currently both of my nodes are using it ( + the wedge pill draft ) |
14:22 |
jfw |
asciilifeform: hm, ok. |
14:22 |
jfw |
trinque: if you don't mind my asking, what do you use to create transactions? |
14:23 |
trinque |
pycoin |
14:23 |
trinque |
not that I'm endorsing it |
14:23 |
trinque |
would actually be happy to migrate to your thing. |
14:23 |
jfw |
cool. It's on my list to properly introduce all that |
14:25 |
jfw |
got genesis patches already, unfortunately noticed they don't follow the subdirs convention (I didn't quite see the point of those but was won over after discussion with diana_coman) |
14:26 |
asciilifeform |
jfw: the 'one main dir' thing, i deliberately baked into 1st vtron, idea being that i oughta be able to visually identify what proj a vpatch belongs to |
14:26 |
shinohai |
ok thx. trinque i haz mod6's keccak seals and my own on www |
14:26 |
shinohai |
just no sigs for anyone else |
14:26 |
asciilifeform |
afaik not all later vtrons required it tho |
14:28 |
asciilifeform |
shinohai: i actually signed his regrind, but iirc not yet posted. (held off thinking 'will bake phf-like v-displayer w/ automatic hopper') ; will post after wrap up ch21 (what i'm doing atm) |
14:29 |
jfw |
jfw's recipe for diffing against old sha512 genesis (though it ate my <pre>) |
14:29 |
asciilifeform |
there in fact was a utf turd in the genesis. iirc mod6 removed in his. |
14:30 |
* |
shinohai also removed |
14:30 |
asciilifeform |
shinohai: what do you mean 'also removed' ? i thought yours was mirror of mod6's |
14:30 |
trinque |
phf ever publish his viewer? |
14:31 |
asciilifeform |
trinque: nope. i requested many times, was frustrating |
14:31 |
trinque |
weak |
14:31 |
asciilifeform |
erry time (while fella was still answering) heard 'soon!' |
14:32 |
trinque |
every node of the wot needs all pieces of infrastructure, none of this "hurr I'm lord of pulling this lever, and he's lord of pulling that" |
14:32 |
asciilifeform |
he aint dead; snarfed up e.g. ch20d not so long ago. but not answering mailz. |
14:32 |
trinque |
obvious butthurt joke is too easy. |
14:33 |
asciilifeform |
trinque: possibly he saw how asciilifeform's publishing of irc logotron was received, lol |
14:34 |
trinque |
I published "cuntoo"; how was that received? |
14:34 |
asciilifeform |
iirc he admitted once that his item was even worse kludge, ran from save-lisp-and-die snapshot and only loosely corresponds, lol, to the nominal source |
14:34 |
trinque |
doesn't matter. it has informed every step of the current item I'm working on |
14:34 |
trinque |
ahahah oic |
14:35 |
trinque |
man lisp systems have truly chthonic failure modes. |
14:35 |
asciilifeform |
trinque: i've nuffin against folx publishing their kludges, erryone is adult and knows not to plug it into missile battery |
14:35 |
trinque |
sure, same. |
14:36 |
trinque |
no items made by bags of shit and saltwater are holy. |
14:37 |
* |
trinque bbl, gonna get some sunshine |
14:37 |
* |
asciilifeform also |
| |
~ 6 hours ~ |
20:37 |
jfw |
http://logs.nosuchlabs.com/log/therealbitcoin/2020-05-16#1000278 - oh and yes, I had a question about the change. |
20:37 |
snsabot |
Logged on 2020-05-16 14:12:41 jfw: http://logs.nosuchlabs.com/log/therealbitcoin/2020-05-15#1000235 - from mod6's article I got the idea that his was still a halfway-fix, and yours still flagged experimental. I thought I'd wait for a finished thing before digging into it. Did I miss such a thing? |
| |
~ 19 minutes ~ |
20:57 |
asciilifeform |
jfw: he dun appear to be tuned in. if you wanna pose q re item, i might be able to answer |
20:57 |
* |
asciilifeform rereads link |
21:04 |
jfw |
the patch seems to say "if I'm sending you a message that ends up greater than $limit bytes, you're misbehaving." but how am I to know the good-behavior limit when asking for the blocks, since I don't know how big they are? |
21:05 |
* |
asciilifeform answrd on mod6's www since q was asked there. |
21:06 |
asciilifeform |
jfw: in modern era, can assume 1e6 bytes per. |
21:08 |
asciilifeform |
i neglected to put this in the comment, but the reason why prb-type clients ask for blox with 'getdata', is that they do the 'headers-first sync' heresy. |
21:08 |
asciilifeform |
i.e. they ask a random noad for as many headers as possible, and then assume these represent the actual chain |
21:08 |
jfw |
figured. which *does* make for fast download at least in fair weather... |
21:09 |
asciilifeform |
at the quite obvious cost of '1stcomer tells you what the block hashes are' . |
21:10 |
jfw |
even with trb, 1stcomer could stick you with a long bogus chain due to the historically low difficulty, no? |
21:11 |
asciilifeform |
jfw: if 1stcomer is your only peer, than yes. was 1 of the reasons i proposed cement . |
21:11 |
snsabot |
Logged on 2020-05-15 16:55:06 asciilifeform: ( iirc i described this in the past. cement, not a la prb's 'dun need to verify these', but rather 'oh and btw the 1st N blox have THESE hashes, and it someone brings in a 599,999 that doesn't, he's trying to fuck you ) |
21:12 |
asciilifeform |
in real life tho, it aint a very useful attack, would only work on some n00b who has 1 node and no idea of anything outside it |
21:13 |
jfw |
seems the "headers-first" could be done similarly, though I'd readily believe it's not. |
21:13 |
asciilifeform |
jfw: 1 of the afaik yet-uninvestigated atlantises of trbism, btw, is what the max practical reorg depth is. it aint 100% apparent from the coad, and needs fairly gnarly experiment, which no one's yet done |
21:14 |
asciilifeform |
jfw: it could. could ask for headers from 'cemented' hashes (and even why not store the factual sizes of the blox in the cement, so as to ask for 20MB at a time etc) . |
21:15 |
asciilifeform |
at one pt i wanted to implement, but iirc it was mp who objected, the notion struck him as too prbesque for comfort |
21:15 |
asciilifeform |
'who are you to say what the 1st n blocks were!' or similar, it was |
21:15 |
jfw |
I mean get headers from multiple peers and go with highest difficulty |
21:16 |
asciilifeform |
my orig scheme didn't even go that far. only was 'eat .txt that was put in by hand, node keeper verified pgp sig on, then can request 1st n blox by hashes' |
21:18 |
asciilifeform |
standard trb is stuck asking for 'gimme next blox after H' . this makes for slow sync even in good weather. |
21:19 |
jfw |
mhm, esp. since it apparently only asks the one time on connect. |
21:20 |
asciilifeform |
jfw: interestingly, ben's attempt (ask erry N min of no-new-block) didn't seem to make palpable diff |
21:20 |
asciilifeform |
afaik no one ever found out for certain just why |
21:21 |
asciilifeform |
( shitoshi's -- issued pushgetblocks on boot; asciilifeform's 'aggressive' -- on connect; ben's sequel to the latter -- after N min of stall ) |
21:25 |
* |
jfw tempted to schedule a 'kill -9' and restart every N hours, apparently the nessary size of hammer |
21:25 |
asciilifeform |
jfw: kill then 10s later kill -9 , is the traditional recipe |
21:25 |
asciilifeform |
(otherwise risk nuking the db) |
21:26 |
jfw |
bdb can take it supposedly; meanwhile I learned that when "asked politely to shutdown", it moronically rewrites entire blkindex.dat. |
21:26 |
asciilifeform |
aha, that knob never worked properly |
21:27 |
asciilifeform |
( again on acct of locking idiocy . it waits ~forever for the threads ) |
21:28 |
jfw |
no, it's a particular self-inflicted thing, "flushing" the db which means not just checkpointing but resetting LSNs |
21:28 |
asciilifeform |
this also. but i never use that knob because the thing doesn't factually shut down in finite time when you turn it. |
21:29 |
asciilifeform |
'windows 95' quality standard. |
21:29 |
jfw |
myeah. |
21:32 |
* |
asciilifeform wonders whether jfw has already eaten sufficient trb to have found out that it's factually a single-threaded proggy, i.e. can't do ~anything~ with the actual blox for >1 peer at a time , and only invokes pthreads because author had nfi how to sanely queue commands |
21:33 |
asciilifeform |
hell, even can't speak on >1 socket at 1 time (polls the sockets!) |
21:33 |
asciilifeform |
^ was the direct mechanism for latest 'wedge' |
21:34 |
jfw |
I'd quite suspected as much from observation, and saw the RPC server is fully criticalsection'd |
21:34 |
asciilifeform |
damned near erry other set of {} is 'critical section' in trb |
21:36 |
asciilifeform |
author had nfi what is to queue, or what a thread-safe data structure might look like, so he sprinkled locks like little girl sprinkles glitter on clothes |
21:44 |
asciilifeform |
jfw: looking at my notes, seems like it's been 3+yrs since i last stood up a node the 'natural' way ( rather than via 'eatblock' , 'lighting it up' from existing noad ) |
21:44 |
asciilifeform |
sorta like how stone age men worked their fires |
21:49 |
jfw |
that's one advantage of having students - forces you to notice the pain points you've grown to ignore |
21:49 |
asciilifeform |
indeed |
21:50 |
asciilifeform |
'v', for instance, came up with because folx eventually barfed at sorting out signed-patch sequences by hand |
21:50 |
asciilifeform |
(orig. in trb we had simply signed patches.) |
21:51 |
* |
asciilifeform cannot claim to have discovered notion of 'signed patches', linus et al were doin' it in 1990s |
21:53 |
trinque |
yep, was a properly from-cause improvement. |