Replies: 2 comments 7 replies
-
We're always happy if folks experiment with substrate as a platform of course. If I understand, graphene works operates upon transactions, not blocks. All nodes receive and verify most transactions. You then gossip graphene blocks by sending the header and doing set reconciliation on the transactions within the block. Just fyi, Bitcoin uses BCH codes in their transaction gossip (more links). I do not know their performance characteristics, but presumably much better than bloom filters at Bitcoin's blockrate. Interestingly, if one has more CPU time then there exist protocols that massively out perform bloom filters on bandwidth, ala Mike Hamberg's RWC2022. We could explore gossip via the reed-solomn erasure coding using by polkadot or via some rateless erasure code. It'd hurt CPU performance slightly, but it maybe share bandwidth better, prevent network level attacks, and maybe even help block producers stay anonymous after making their block (ditto bittorrent). As a rule, we've never pushed for gossip optimizations like this for several reasons:
As an example of all three, we'll push whole block optimizations (2) that save relay chain resources (1). Among the cryptographic batching examples, I suppose schnorr half-aggregation only saves 32 bytes per transaction and 40% of signature verification time, but snarkpack saves maybe 100 bytes per transaction and 90%+ snark verification time. A priori, collators do not benefit, only validators do, but sassafras (3) lets collators benefit too. Anyways.. I realize your case might not benefit from whole block optimizations, etc. so explore whatever sounds helpful. It'd maybe help some other parachain teams too, not really sure. |
Beta Was this translation helpful? Give feedback.
-
I think this should be doable with its own req response protocol to just return the transaction hashes? (Didn't read the paper if they direcfly announce header + hashes) |
Beta Was this translation helpful? Give feedback.
-
We are planning to implement some scalability technics to block gossiping in Subspace, currently planning to implement Graphene protocol.
Currently my personal opinion that the approach we should take is to bypass Substrate's block gossiping for this entirely and do that with custom gossip and request/response protocol.
I'm wondering, however, what Substrate maintainers think about this and whether some refactoring or abstractions would be desirable upstream that will help us achieve this? And maybe upstream Graphene protocol implementation itself for the rest of the community to enjoy.
Beta Was this translation helpful? Give feedback.
All reactions