Post
Topic
Board Development & Technical Discussion
Merits 11 from 5 users
Re: Blockstream Satellite 2.0
by
gmaxwell
on 07/05/2020, 14:53:53 UTC
⭐ Merited by Welsh (6) ,fillippone (2) ,xenon131 (1) ,ETFbitcoin (1) ,Heisenberg_Hunter (1)
Can't load the file, so I'm gonna ask here: Do you replace outpoints with shorter ids? Can/do you skip witness data optionally when applicable?
Stupid webserver died, alas. But it wouldn't have answered your questions because the relationship there is only spiritual, what they implemented was implemented a long time after that document, probably by people who only got a second hand description of it. Tongue

Here is the actual implementation:  https://github.com/Blockstream/bitcoinsatellite/blob/master/src/compressor.cpp#L212

Transactions are encoded and decoded in a fully standalone form without needing any context. That makes it impossible to replace the input txid/vout with a short identifier, though they are encoded more efficiently.  Script data is templatized and P2SH embedded segwit gets the redundant hash removed, and so on.

Things could be made smaller if there wasn't a requirement for the encoding to be context free... but context free is important for FIBRE reconstruction of blocks using the mempool. It also wouldn't be possible to use context for loose tx relay without a lot of extra complexity. E.g. if you use a counter for outpoints the peers have to be synchronized on the best block to relay (no guarantee of this in bitcoin, consider block races or just non-instant block propagation), if you use a short hash you have to deal with clowns colliding the short hash, if you use a salted short hash you'd need some indexing of utxos over that salted hash, negotiating it, etc.

I think there was some talk by the blockstream folks of making another encoding for historical blocks (so no mempool reconstruction) that used whole-block context and saved some more space.

Any estimation on how fast/slow is that compared to the long-established broadcasting via Internet?
Right now in my tests on the new signal I was getting blocks on the satellite about 2-4 seconds behind the internet, most of the time.  The performance appears to be dominated by low chunk hitrates which could be improved... I believe that with tuning they should be able to get it to 1-2 seconds consistently. Perhaps more tuning in the satellite modems could get it lower than that though the one-way delay to geosync is pretty high and a lot of the performance that the satellite modem gets comes from fairly intense error correction that adds delay.

Quote
How long does it take to have the full sync from scratch? Sure there is a need for extra equipment  but the question remains - is that broadcasting free?
About three weeks.  The signal is free. Blockstream also lets you pay bitcoin to send out additional data over the channel.