Grant Proposal: Sia Satellite

Hi All,

This is my March progress report. The work is progressing very well, and there is not a lot left to do till the release.

What was done:

  • FormContracts RPC was rewritten to leverage the core code. Now it does not count the already existing contracts against the requested number, it just provides as many new contracts as requested, because
  • RequestContracts RPC was introduced, specifically for the case when the renterd node has accidentally lost some or all of its contracts.
  • RenewContracts RPC now works over RHP3.
  • UpdateRevision RPC was created to inform the satellite about eventual uploads, downloads, or any other actions going on between renterd and the hosts directly. This was done just for the purpose of a better accounting mid-contract, because the satellite will fetch the final revision anyway when the contract expires.
  • Uploads via renterd are working (RHP2).
  • Downloads via renterd are working (RHP3).
  • Previously, the renter’s public key was generated by the satellite and had to be immutable, because the renter needed to identify themselves with the satellite. This presented a security issue, because a group of malicious hosts could potentially track down the data uploaded by the same renter and even recreate the files. Now the public key used for each contract formation is derived from the renter seed and the host’s public key, like it is done in renterd.
  • The contracts on the dashboard can now be expanded to show the detailed information and collapsed. The can also now be sorted by the start or end height.
  • Various bug fixes.

What comes next:

  • Finish the integration with renterd (especially the new UI).
  • Clean out some remaining bugs, especially in the accounting part.
  • Prepare for the release!
2 Likes