Direct Integration with Bitcoin

Thanks for the clarification, I you are correct that I was originally referring to porting these data structures to a form where they can be stored in a Motoko stable variable via stable. I misunderstood the path @dieter.sommer and his team were taking, and now understand this is then being done in order to use the full 8GB memory of the canister (roughly up to ~8GB).

A few follow up questions for @dieter.sommer.

  • Why did the team choose to directly store the data in stable memory throughout its lifecycle given the performance implications, when serialization/deserialization is much more efficient? Does the quote below apply differently to Rust than Motoko in terms of the performance tradeoffs of permanently storing this data in stable memory?
  • Why not attempt to scale out the UTXO set storage horizontally instead of vertically?

  • If the Bitcoin Integration team has chosen to scale vertically, what does this mean in terms of the IC roadmap for scaling (i.e. BigMap pushed back), and should application developers abandon horizontal scaling and follow suit by scaling vertically?

1 Like