go-spacemesh
go-spacemesh copied to clipboard
remove activeset fetching from fetcher and use separate stream for it
2023-11-17T19:26:52.427+0100 ERROR fd68b.blockGenerator failed to process hare output {"node_id": "fd68b9397572556c2f329f3e5af2faf23aef85dbbbb7e38447fae2f4ef38899f", "module": "blockGenerator", "layer_id": 36413, "errmsg": "preprocess fetch layer 36413 proposals: hint: proposalDB, hash: 0x0159d75e123be253f1b6d8130abde00bbc662ce6000000000000000000000000, err: hint: activeset, hash: 0x10a936e0c9ff1ed61ad90928a7f963de16618605bc4f45920f507f5a04a8059c, err: i/o deadline reached\nhint: proposalDB, hash: 0xd08566e399253b05fcbb7ed9dccd441ecc8f2497000000000000000000000000, err: hint: activeset, hash: 0x75232eee4ad87e864d8520c46c696a4a456dc2aa2b6ee6a7f92a56939dec2d63, err: i/o deadline reached", "name": "blockGenerator"}
fetcher batches requests, so for example in this case it will request 2 slightly different activesets from same peer. every such activeset is ~2MB.
instead use plain stream for every separate activeset without any batching. it should be done for every object, but activesets is the most painful.