asciilifeform: $ticker btc usd
btcinfobot: Current BTC price in USD: $37507.21
asciilifeform: !w poll
watchglass: Polling 17 nodes...
watchglass: 220.127.116.11:8333 : Could not connect!
watchglass: 18.104.22.168:8333 : (172-4.core.ai.net) Alive: (0.023s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=687165
watchglass: 22.214.171.124:8333 : Could not connect!
watchglass: 126.96.36.199:8333 : (pool-108-31-170-100.washdc.fios.verizon.net) Alive: (0.103s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=687165 (Operator: asciilifeform)
watchglass: 188.8.131.52:8333 : (172-6.core.ai.net) Alive: (0.142s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Return Addr=0.0.0.0:8333 Blocks=687165
watchglass: 184.108.40.206:8333 : (ns562940.ip-54-39-156.net) Alive: (0.137s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=687165
watchglass: 220.127.116.11:8333 : Alive: (0.095s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Return Addr=0.0.0.0:8333 Blocks=687165 (Operator: whaack)
watchglass: 18.104.22.168:8333 : Alive: (0.178s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=687165
watchglass: 22.214.171.124:8333 : Alive: (0.161s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=687165
watchglass: 126.96.36.199:8333 : Alive: (0.214s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=687165
watchglass: 188.8.131.52:8333 : (static.184.108.40.206.clients.your-server.de) Alive: (0.276s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=412055 (Operator: jurov)
watchglass: 220.127.116.11:8333 : (ns3140226.ip-54-38-94.eu) Alive: (0.259s) V=88888 (/therealbitcoin.org:0.8.88.88/) Jumpers=0x1 (TRB-Compat.) Blocks=687165
watchglass: 18.104.22.168:8333 : (tlapnet-38-54.cust.tlapnet.cz) Alive: (0.306s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=687165
watchglass: 22.214.171.124:8333 : Busy? (No answer in 100 sec.)
watchglass: 126.96.36.199:8333 : Busy? (No answer in 100 sec.) (Operator: trinque)
snsabot: Logged on 2021-02-25 16:29:31 asciilifeform: dpb, shinohai, et al : http://dulap.xyz/pub/trbdb.torrent and lemme know whether worx. plox to seed.
snsabot: Logged on 2021-06-10 19:12:46 asciilifeform: whaack: ok, baked, tested: asciilifeform_dumpblocks_force_mainchain.kv.vpatch ; asciilifeform_dumpblocks_force_mainchain.kv.vpatch.asciilifeform.sig .
asciilifeform: i'ma do it the next time someone needs a snapshot, rather than preemptively and letting it age.
asciilifeform: !q seen-anywhere whaack
snsabot: whaack last seen in #asciilifeform on 2021-06-10 17:24:24: Well my point was that perhaps block 685135 was the first block that wuold have an orphaned blk in a dumpblock sequence. but perhaps you understand something i dont
whaack: asciilifeform: good morning!
whaack: thanks for the patch, I'm going to rebuild trb and confirm my problem is fixed
asciilifeform: no prob whaack . lemme know if worx as expected.
whaack: btw, I found this problem because a couple of hundred blocks later I found a transanction with no antecedent (i.e. couldn't find txn with corresponding hash to 1 of the new transanctions inputs) . Given my understanding of the code it is kinda surprising I didn't step on an orphan before
whaack: My guess is I didn't hit an orphan because I did essentially a normal sync, so I wasn't fed any orphan'd blocks until I got to the tip
asciilifeform: i recall, 685156
whaack: yes sorry it was 685156, so only 21 blocks later to be precise, not 100+
whaack: so to rephrase my understanding - if trb is being fed via the normal sync process by honest nodes it is not going to be fed orphans for blocks towards the beginning of the chain, and likely won't get any orphans until it is fully sync'd up
asciilifeform: whaack: correct.
whaack: cool, that clears up my confusion from yesterday
whaack now has to figure out how to do a manual reorg of his auxillary blockexplorer db
whaack: Also, a random shower thought I had, maybe a proper public block explorer should have some basic privacy features. I was thinking, if you query for the utxos of an address, you've revealed to the block explorer your address, but maybe you can do a query of the utxo for 1,000 addresses, 1 of which is your address, and then apply a filter client-side to get the utxo specific to your address. this
whaack: way anyone with the logs of the blockexplorer only knows that your address is 1-of-these-1000 addresses
asciilifeform: whaack: for private work, gold standard will always be local instance of the www proggy
whaack: right, maybe this kind of solution I'm proposing is akin to code obfuscation
asciilifeform: whaack: imho literate folx oughta know better than to throw seekrits into a search box on whatever www. (and there aint really a 'solution', in the usual sense; folx really oughta handle seekrits on their in-house noad, it is after all a p2p net)
asciilifeform: it's a p2p net, and so going to some third party to ask 'have i been paid?' is a sin.
whaack: right. the solution isnt to ask for the utxo of 1,000 addresses, it's to ask for the whole blockchain.
asciilifeform wonders why otherwise-reasonable-seeming folx insist on hosting in shithub..
asciilifeform went and read linked pieces; maybe not so 'reasonable' after all, lol
whaack: asciilifeform: From my understanding, a chain of transactions can be found in the same block. I.e if txn A has a utxo that B uses as an input, and C uses as an input one of B's outputs, you can put B and C in the same block. Do you know whether trb requires txns that depend on each other to be ordered within that same block, i.e. B having a lower index than C?
whaack guesses that the answer is no, the txns can be scrambled out of order.
asciilifeform: whaack: iirc there is no enforced ordering, aha.
asciilifeform: ( ye olde built-in miner did ~emit~ them in order; but this aint a hard req. protocolically )
whaack: asciilifeform: seems a little weird, that means when a node is verifying it has to create a temporary store of all transactions before checking it has valid antecedents
whaack: it also begs the question whether one could create a cyclic transaction, i.e. the input of B is the output of A, but simultaneously the output of B is the input of A, and if there's no topological sort done than the only reason why this should be impossible is because you would need to find some form of h(A + h(B)) == h(B) and vice versa
snsabot: (trilema) 2017-07-25 asciilifeform: yes, and you can flood'em with n-length (e.g. 7) chains that end in 'ha, gotcha' instead of tx-in-old-block, as root
snsabot: Logged on 2021-06-10 20:25:41 asciilifeform: upstack, at the risk of repeating self... imho bitcoin is an example of a piece of shit, from every possible angle, that 'won' from lack of credible alternatives. like microshit's products.
asciilifeform: whaack: the good noose is, you can't actually make a closed circle, the verification is one-pass.
asciilifeform: looking at the block eater, does reveal that 'chain' of tx has to be sitting in order, to get eaten. the topo sort is in the emitter, however.
asciilifeform: whaack: i apparently misunderstood your orig. q. -- if chained, then gotta appear in order.
snsabot: Logged on 2021-06-11 16:44:42 asciilifeform: whaack: iirc there is no enforced ordering, aha.
whaack: asciilifeform: ah okay, thanks for explaining. I was looking to see if there was any edge case I needed to consider when deleting transactions and unmarking outputs as 'spent' etc. while writing the reorg code for the auxillary db
whaack: it's taken me 1-2 months to sync up the fully indexed auxillary db, so I'd like to get this right on the first pass.
snsabot: (trilema) 2017-03-16 asciilifeform: the way i read ln. 968, miners TODAY are apparently more than welcome to create a duplicate coinbase, so long as it is a dupe of a ~spent~ coinbase.
whaack: right, i'm aware of this one
snsabot: Logged on 2020-07-14 10:51:16 asciilifeform: whaack: you've discovered what may well be the most riotously idiotic 'feature' of orig. client -- 'tx replacement'.
asciilifeform: i.e. txid is not a unique identifier for a tx!
asciilifeform: (believe or not)
asciilifeform when says 'it'sa piece of shit' does it not because he has toothache or similar. but because objective fact, bitcoin has the tell-tale marks of a typical microshit-besotten sloppy thinker's work
whaack: from my understanding there are 2 pairs of duplicate transactions with ids d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599 and e3bf3d07d4b0375638d5f1db5255fe07ba2c4cb067cd81b84ee974b6585fb468, i don't have the 4 block numbers on hand though
asciilifeform: whaack: afaik these are the only ones which currently exist. potentially new ones ~may~ be formed in future (see earlier lnk)
asciilifeform: whaack: didja get a chance to patch your trb ?
whaack: asciilifeform: not yet i've been spending all my time working on the reorg code
whaack: i have to rewind my db before I can meaningfully make use of the patch
asciilifeform: a ok
asciilifeform suspects that for block explorer and similar gadgets, would be more useful to have a trb ~pushing~ knob, which emits blox (ideally with 10-20 or so buffer, so that your explorer never has to reorg) ~at~ the www proggy, rather than reverse (polling and O(n^2) dumper)
snsabot: (therealbitcoin) 2020-05-15 asciilifeform: this would be very difficult if you had to handle reorgs. asciilifeform's discovery was that you don't have to, if you keep e.g. last 100blox in 'nursery' (something similar to the old db) and only >100-deep blox, in the static arrays.
whaack: asciilifeform: allegedly prb has soft phorked against that duplicate txn mining, but i'm starting to get the idea that the whole idea of softforks is an anticoncept
asciilifeform: whaack: indeed
asciilifeform: whaack: softforkism is entirely irrelevant to the q of 'what is actual bitcoin protocol'
whaack: asciilifeform: yes, I had a 6 block buffer, and thought I would not have to worry about reorging, but this bug with dumpblock has forced my hand. in any case i was bound to have to write it someday to deal with some prb crap that is sure to come
asciilifeform: whaack: it isn't such a bad thing to implement reorging -- once you do, you in fact have most of a noad.
asciilifeform: simply , not strictly needed for 'block explorer'; i'd've simply rebaked the db.
whaack: the problem is that takes 1-2 months
asciilifeform: wait, what does ? simply to eat block into your proggy?!
asciilifeform: wai so slow?? (where's bottleneck?)
whaack: bottle neck is creating the indeces on all the transactions and addresses
asciilifeform: whaack: if you want to usably sqlize trb db, would need rather beefy irons. ( alternatively my approach -- make entirely new db from 0 -- but still needs much work.. )
whaack: I'm pretty sure I have all the insert operations at O(1), there's just a lot of rows...
asciilifeform: o(1) but rather fat constant
asciilifeform: people do it, of course (they use boxes w/ 64cpu, 1tb ram, etc)
whaack: the machine I've rented from you works, just takes a bit of time, I have a more beefy local machine (4 GHz processor 16 GB RAM + SSD http://ztkfg.com/2019/11/final-selected-parts-for-my-first-computer/) looks like it should do it in about half time
asciilifeform: whaack: this is a case where, aha, you'd want to do it on a heavy box at home and then possibly upload to your www machine
whaack: the reason i didn't do that was because my local box did not have a sync'd trb, this is now fixed
asciilifeform would like to 100% solve the riddle of the slow sync; to date, neither asciilifeform's nor other folxs' (afaik) attempts have yielded anything like a satisfying fix
asciilifeform: 1 problem is that the protocol itself (where all newly-received blox are blindly force-fed to all connected peers) is extremely braindamaged/wasteful of bw
whaack: gonna step out for a bit, may be back later tn
asciilifeform: there's software that was ~designed~, and software which got ~shat out~. guess which bitcoin was..
asciilifeform also bbl
btcinfobot: The bot has been up for: 3 days 11 hours 37 minutes and 59 seconds