14:40 |
whaack |
!e view-height |
14:40 |
trbexplorer |
block_height: 720763 |
14:40 |
trbexplorer |
mins_since_last_block: 7 |
14:48 |
asciilifeform |
$ticker btc usd |
14:48 |
asciilifeform |
ah lol bot awol |
14:48 |
asciilifeform |
!w poll |
14:48 |
watchglass |
Polling 14 nodes... |
14:48 |
watchglass |
205.134.172.4:8333 : (172-4.core.ai.net) Alive: (0.082s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=720764 |
14:48 |
watchglass |
205.134.172.6:8333 : (172-6.core.ai.net) Alive: (0.086s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Return Addr=0.0.0.0:8333 Blocks=720764 |
14:48 |
watchglass |
205.134.172.26:8333 : Alive: (0.141s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Return Addr=0.0.0.0:8333 Blocks=720764 |
14:48 |
watchglass |
205.134.172.27:8333 : Alive: (0.092s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=720764 (Operator: asciilifeform) |
14:48 |
watchglass |
54.39.156.171:8333 : (ns562940.ip-54-39-156.net) Alive: (0.112s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=720764 |
14:48 |
watchglass |
71.191.220.241:8333 : (pool-71-191-220-241.washdc.fios.verizon.net) Alive: (0.133s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=720764 (Operator: asciilifeform) |
14:48 |
watchglass |
205.134.172.28:8333 : Alive: (0.083s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Return Addr=0.0.0.0:8333 Blocks=720764 (Operator: whaack) |
14:48 |
watchglass |
208.94.240.42:8333 : Alive: (0.204s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=720764 |
14:48 |
watchglass |
54.38.94.63:8333 : (ns3140226.ip-54-38-94.eu) Alive: (0.312s) V=88888 (/therealbitcoin.org:0.8.88.88/) Jumpers=0x1 (TRB-Compat.) Blocks=720764 |
14:49 |
watchglass |
94.176.238.102:8333 : (2ppf.s.time4vps.cloud) Alive: (0.376s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=720319 |
14:49 |
watchglass |
82.79.58.192:8333 : (static-82-79-58-192.rdsnet.ro) Alive: (0.320s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=720764 |
14:49 |
watchglass |
103.36.92.112:8333 : (terebe.ns01.net) Alive: (0.556s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=720764 |
14:49 |
watchglass |
75.106.222.93:8333 : Alive: (0.439s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=720764 |
14:50 |
watchglass |
143.202.160.10:8333 : Busy? (No answer in 100 sec.) |
| |
~ 3 hours 19 minutes ~ |
18:10 |
jonsykkel |
http://logs.nosuchlabs.com/log/asciilifeform/2022-01-27#1076948 << "i am" messages would be part of chain like so? (blue arrows refering to this) |
| |
↖ |
18:10 |
dulapbot |
Logged on 2022-01-27 13:27:45 asciilifeform: thimbronion, jonsykkel : asciilifeform had a thought : possibly the inclusion of 'speaker' field to start with was a mistake. instead, internally station oughta distinguish l2+ msgs by ~chain~, internally, and 'speaker' instead would be a 'call me x' ~broadcast message type~. |
18:10 |
dulapbot |
Logged on 2022-01-27 13:50:48 asciilifeform: btw if the 32bytes formerly 'speaker' instead made to point to one's 'birth' (i.e. 1st 'i am' broadcast), makes rather simple to determine who was 1st claimant of $handle on given pestnet. |
18:10 |
jonsykkel |
i think idea of prog internally doing "identity == chain" for l2+ is good |
18:10 |
jonsykkel |
if get rid of speaker field, need to have the last "i am" msg to know speaker of a given msg. would think in practice means a lot of getdata necesary before can even display l2+ messages. could of cours have smth like special getdata for last "i am" paket |
| |
↖ |
18:11 |
jonsykkel |
http://logs.nosuchlabs.com/log/asciilifeform/2022-01-27#1076949 << could work as long as have strict rules for when to mess with text ("s/^speaker: /etc/" or smth) so doesnt fuck text up unpredictably midsentence |
18:11 |
dulapbot |
Logged on 2022-01-27 13:29:18 asciilifeform: would solve e.g. this, supposing one were willing to have the machine substitute a chain id munge in place of the speaker yer addressing, and parse it back out on the receiving end |
18:11 |
jonsykkel |
http://logs.nosuchlabs.com/log/asciilifeform/2022-01-27#1076878 << although on 2nd thought maybe this is mostly an imaginary problem, would almost never happen and presumably be resolved relatively quickly if does happen. xtra complexity required to handle this might be unwarranted, idk. |
| |
↖ |
18:11 |
dulapbot |
Logged on 2022-01-27 02:40:39 jonsykkel: http://logs.nosuchlabs.com/log/asciilifeform/2022-01-26#1076775 << if net1 sees guy1 as "speaker" and guy2 as "speaker-2", and net2 sees guy1 as "speaker-2" and guy2 as "speaker" - how to address these ppl in messages? "hey speaker-2 wats up" << will appear to diff subnets that u are addressing diff guys |
| |
~ 15 minutes ~ |
18:27 |
cgra |
this is again starting to take time beyond imagination, so i thought i'd make an attempt to loosely describe meanwhile, perhaps asciilifeform grasps what i mean: |
| |
↖ |
18:27 |
dulapbot |
Logged on 2021-12-06 10:00:57 cgra: asciilifeform: i'll just make a blog piece of this too, sometime soon(ish) |
18:27 |
cgra |
the message exchanges "getblocks"/"inv" and "getheaders"/"headers" are similar, but the former ends up being pretty clumsy in practice. also, ofc, the latter otoh isn't currently fully implemented |
18:27 |
cgra |
getblocks/inv exchange sucks because the inv response may end up distorted at least for: 1) new best block(s) mixing up with it, 2) the inv spam guard, by preventing repeats, will cause gaps, and in the worst case, stuck sync, 3) unlike the "headers" message, it's not an explicitly described hash segment of the block chain, just a list of block hashes, so any mixups and gaps are not obvious |
18:28 |
cgra |
the proposed approach is to, instead of sending "getblocks", send "getheaders". no change in how to respond to other nodes' "getblocks", only change how own node requests new blocks. then, "AskFor()" blocks according to "headers" responses, not "inv" messages. on "inv" messages, can just reply with "getheaders" to get a more reliable "block advert": a "headers" message, and now further "AskFor()" |
18:28 |
cgra |
while the "headers" message's item count isn't regulated by the originating node, like an "inv" in reply to "getblocks" is (to allow the receiving node to request the whole advertised list of blocks at once), the "headers" recipient could simply ask for one block at a time and repeat "getheaders" on new block reception |
18:28 |
cgra |
the unbounded "headers" message is ~160kB in size, but the node asking for blocks could use an occasionally updated stop hash, seems like some 63 blocks ahead of the first in the unbounded headers list would give an optimal, average "headers bandwidth". every time the stop hash is reached, another unbounded headers is requested, and new stop hash is decided. |
18:29 |
cgra |
this "one block at a time" approach could afaik mean ~zero bastards and ~zero blocks out-of-order. the downside is that blocks are processed ~and~ downloaded synchronously. next block is requested only after the previous one is fully processed, not simultaneously |
| |
↖ |
18:35 |
cgra |
while admittedly headers-first-esque, i suppose some 3-5MB block buffer wouldn't hurt, if a reasonably clean implementation exists, to allow parallel processing and download of blocks |
18:35 |
asciilifeform |
wb jonsykkel & cgra ! |
18:36 |
jonsykkel |
ty ty |
18:39 |
asciilifeform |
http://logs.nosuchlabs.com/log/asciilifeform/2022-01-28#1077011 << correct |
18:39 |
dulapbot |
Logged on 2022-01-28 13:10:19 jonsykkel: http://logs.nosuchlabs.com/log/asciilifeform/2022-01-27#1076948 << "i am" messages would be part of chain like so? (blue arrows refering to this) |
18:40 |
asciilifeform |
jonsykkel: except, the 'i am bobart' will point to 'i am bob' (in a designated chain field) |
18:40 |
asciilifeform |
http://logs.nosuchlabs.com/log/asciilifeform/2022-01-28#1077015 << where was previously 'speaker' field, nao a hash which points to last 'i am'. and you getdata it w/ ordinary getdata if you dun have it. |
| |
↖ |
18:40 |
dulapbot |
Logged on 2022-01-28 13:10:59 jonsykkel: if get rid of speaker field, need to have the last "i am" msg to know speaker of a given msg. would think in practice means a lot of getdata necesary before can even display l2+ messages. could of cours have smth like special getdata for last "i am" paket |
18:41 |
asciilifeform |
http://logs.nosuchlabs.com/log/asciilifeform/2022-01-28#1077018 << 'rule 1' of network protocols -- it sumthing can happen, it ~will~ happen |
18:41 |
dulapbot |
Logged on 2022-01-28 13:11:26 jonsykkel: http://logs.nosuchlabs.com/log/asciilifeform/2022-01-27#1076878 << although on 2nd thought maybe this is mostly an imaginary problem, would almost never happen and presumably be resolved relatively quickly if does happen. xtra complexity required to handle this might be unwarranted, idk. |
18:41 |
asciilifeform |
esp. if that 'sumthing' breaks you. |
18:41 |
asciilifeform |
esp. if it breaks you w/out being readily attributable to the breaker. |
18:43 |
asciilifeform |
http://logs.nosuchlabs.com/log/asciilifeform/2022-01-28#1077027 << the problem here is that all known noades afaik send 'their latest' block unsolicited to all peers. 99%+ of the 'bastards' received by a syncing noad, are these |
| |
↖ |
18:43 |
dulapbot |
Logged on 2022-01-28 13:29:36 cgra: this "one block at a time" approach could afaik mean ~zero bastards and ~zero blocks out-of-order. the downside is that blocks are processed ~and~ downloaded synchronously. next block is requested only after the previous one is fully processed, not simultaneously |
18:43 |
jonsykkel |
it will happen, but not catastrophic event? at most some confusion between you and couple of l2+ ppl as far as i can tel |
18:44 |
asciilifeform |
i.e. not that it wouldn't help to send a smarter 'getdata' (speaking of cgra re trb ftr) but it won't cut most of the incoming noise. |
18:44 |
asciilifeform |
jonsykkel: asciilifeform's pov is that if hearsay can't be decacophonized, it is largely useless |
18:46 |
jonsykkel |
right, but would still be decacophonized when reading, confusion only occurs if try address collided ppls |
18:47 |
jonsykkel |
autoreplacing handles in messages text carries own uglyness |
18:47 |
asciilifeform |
the focus there is to get folx to quit colliding asap. 1 way or anuther. |
18:48 |
* |
asciilifeform agrees that substituting handles in msg text is an ugh |
18:48 |
jonsykkel |
indeed |
18:49 |
cgra |
http://logs.nosuchlabs.com/log/asciilifeform/2022-01-28#1077040 << they send an "inv" of the latest block (ie. not the block itself), which you needn't "AskFor()" in response, send "getheaders" instead and proceed from there. |
18:49 |
dulapbot |
Logged on 2022-01-28 13:43:36 asciilifeform: http://logs.nosuchlabs.com/log/asciilifeform/2022-01-28#1077027 << the problem here is that all known noades afaik send 'their latest' block unsolicited to all peers. 99%+ of the 'bastards' received by a syncing noad, are these |
18:51 |
asciilifeform |
cgra: the wisdom, such as it was, of the orig. approach (where you get blox thrown at you constantly whether you actually want the 'latest' or not) was the difficulty of sending you into a 'cave' of pregenned alt-universe blox |
18:51 |
dulapbot |
Logged on 2022-01-26 19:16:32 asciilifeform: this is similar to the 'trb in cave' problem. |
18:51 |
asciilifeform |
cgra: prb's 'headers 1st' approach makes it trivial |
18:52 |
asciilifeform |
(to do it to a freshly-built noad, that is) |
18:53 |
asciilifeform |
'headers-1st'ism -- at least as seen in prb -- effectively forces you to uncritically accept lengthy chain from 1 peer at a time when syncing |
18:53 |
cgra |
asciilifeform: imo this isn't headers-firstism, why do you think so? |
18:54 |
* |
asciilifeform may be missing sumthing |
18:54 |
cgra |
isn't any more headers-firstism than the getblocks/inv is -- first asking for hashes, then receiving a bunch of them in response |
18:56 |
cgra |
asciilifeform: to me an 'unsolicited block' is a concrete block being thrown at me, not an inv advert of one. what's 'unsolicited block' to you? |
18:57 |
asciilifeform |
http://btc.yt/lxr/satoshi/source/src/main.cpp#2045 |
18:58 |
cgra |
afaik not many concrete blocks get thrown around, while plenty inv adverts flying |
18:58 |
* |
asciilifeform will have to reread the sores & come back to this thrd |
18:59 |
* |
asciilifeform not touched trb gearbox in a depressingly long time |
19:00 |
cgra |
asciilifeform: i suspect you've forgotten something about the 'inv' mechanism |
19:00 |
cgra |
(otoh, my head being solid bone not ruled out as a possibility either) |
19:00 |
asciilifeform |
no, i remember that it exists, but also iirc most of the blox received by trb aint from getdata per se |
19:00 |
asciilifeform |
i.e. it never getdata'd for'em from a previously-recv'd inv |
19:01 |
cgra |
asciilifeform: my test node was always behind a nat... |
19:01 |
cgra |
(but had plenty of peers to play with) |
19:03 |
asciilifeform |
afaik this doesn't make a behavioural diff, aside from the obv. fact of unreachability by fresh connections coming from outside |
19:04 |
cgra |
asciilifeform: right |
19:06 |
* |
asciilifeform still thinks 'cement' is the closest thing to Final Solution to 'fast sync new noad' |
19:06 |
dulapbot |
Logged on 2021-12-05 16:27:15 asciilifeform: ( to an extent you can get what historically folx were hoping to get from headerfirstism from 'cement'. but even that requires a bit of thought to get right. ) |
19:07 |
cgra |
asciilifeform: i'm not proposing this as an initial sync, but for continuous operation, perhaps primarily because of the 'spam guard' |
19:07 |
asciilifeform |
right |
19:07 |
cgra |
asciilifeform: i mean, not ~only~ as an initial sync, does help both |
19:10 |
cgra |
i believe the spam guard can cause a stuck sync, for example, when all the peers send their new best block inv's to us too early, and now register that block as 'known by us', and won't respond with hash of that block anymore to our later getblocks requests |
19:13 |
asciilifeform |
would be also pretty great if all of this logic weren't part of a buggy pseudomultithreaded state machine with good helping of effectively ~random behaviour.. |
19:14 |
asciilifeform |
is imho astonishing that it worx at all. |
19:14 |
cgra |
asciilifeform: genuinely a work of '(f)art' |
| |
~ 3 hours 6 minutes ~ |
22:21 |
whaack |
new patch coming online... |
| |
~ 23 minutes ~ |
22:44 |
whaack |
!e view-height |
22:44 |
trbexplorer |
block_height: 720812 |
22:44 |
trbexplorer |
mins_since_last_block: 13 |
22:44 |
whaack |
!e view-tx 728 1 |
22:45 |
trbexplorer |
http://paste.deedbot.org/?id=nbkS 1 of 1 |
22:45 |
whaack |
!e view-block 720812 |
22:45 |
trbexplorer |
http://paste.deedbot.org/?id=dfpf 1 of 1 |