[Blog] The State of Sia, March 2023
The State of Sia, March 2023
We’re back with the State of Sia, a monthly installment looking at development and team updates for The Sia Foundation.
As we head into the end of Q1, we’re moving towards an important time for the Foundation. Work on our new releases has been progressing steadily — and we’re rapidly approaching the point where we’ll have betas of our new software available. As a non-dev with a bit of technical know-how, it’s an absolute pleasure to be able to see the progress that is coming from our dev team. This is the stuff that will define the direction of Sia for the next few years, and we hope that you’ll love the work that we’ve done (and remember that they are betas 🙂).
The Grants Program has been moving along well, with a steady stream of proposals from grant-hopefuls as well as internal process improvements on our end to keep things running smoothly. We’ll expand more on those process improvements in the next grants blog post — I’ve even been considering a separate post talking about how we run things over there.
Next month you’ll likely see some very minor changes to our quarterly report, but we’ll call those out when they happen.
And that’s enough exposition, let’s take a look at our work this month.
All public repos can be found here.renterd
renterd will be our new stand-alone renter. The renterd repo is currently public and can be found here, and the app is expected to be released in beta by the end of Q1.
Fixed a deadlock in the worker (Link) Fixed panics due to integer overflows (Link) Fixed ongoing uploads failing when contracts renew midway through (Link)
Support for MySQL (Link) MaxCollateral and RemainingStorage now play into host scores (Link) Added some leeway before we start migrating data to avoid excessive repairs (Link) Correctly handled SIGTERM to allow for graceful shutdowns in docker (Link) Autopilot now keeps Ephemeral Accounts filled (Link) Default gouging settings are a bit stricter now (Link) Added runtime profiling (Link) Added allowlist (selecting a pool of hosts to form contracts with) (Link)
Improved renter shutdown handling (Link) Improved session timeout handling (Link) Added a seed command to generate a new recovery phrase (Link) Used ephemeral accounts for downloads Extended documentation Fixed a non-deterministic erasure coding bug which caused random panics
renterd UI Here’s a quick video demonstrating some of the below changes. The contracts feature now shows a timeline visualization for active contracts The contracts feature now shows and supports pagination and filtering active contracts. Contracts are now filterable by expiry date. Contracts are now filterable by renewal date. The contracts filtering options are now accessible through the global cmd+k menu. The Hosts feature now supports pagination and shows host info, scan, interaction, and uptime information. The configuration page now includes the max storage price gouging setting. The Autopilot settings were updated with the latest options including contract set. The Files page now shows an onboarding/empty state when there are no files.
hostd is the app you’ll be using to rent out your excess storage space to the Sia network.
Added structured logging. Makes it easier to parse log events and determine the source of issues. Migrated RHP3 to use the new volume and contract managers Fixed wallet bugs causing transaction display issues Added RenewedFrom field to contracts to make it possible to track contracts across renewals Improved shutdown for all modules Fixed issues with volume reloading and unavailable volumes.docs
walletd will be the place to store your Siacoins.
Ported to core/types instead of siad/types: (Link), (Link), and (Link).core
The core repo is currently public and can be found here.Added RHP (renter-host protocol) packages to core. This allows renterd and hostd (and any other project) to share a single implementation of the RHP, rather than maintaining separate, possibly-incompatible versions (Link)
Fixed compatibility issues between core and siad. Lets hostd and renterd talk to siad (Link), (Link), (Link), (Link), and (Link) Implemented a blockchain manager and database in core. Previously, core had all of the bits and pieces required to perform Sia consensus, but it lacked an "engine" that could actually ingest blocks, apply the resulting state changes, and track the heaviest chain. This functionality was tested by successfully processing the full Sia blockchain (Link) Fixed math for computing new collateral upon renew in core (Link) Fixed some encoding/decoding issues in the (refactored) rhpv3 protocol (Link) Added Source to delayed outputs. This makes it easier for wallets and explorers to display non-transactions like contract payouts (Link) Added support for testnet constants in core. This is a small but important change that allows core to be used on the testnet (Link) Added testnet tax Hardfork override. Enables hostd and renterd testnet builds (Link) Added some consensus tests after core was updated (Link)
docs Add linux setup guide for hosts (Link) jape
jape is what we use to check that the API routes between client/server are consistent.Added support for strings in query parameters. Fixes API panics in hostd and renterd (Link) website
The website now loads fonts with zero layout shift, this optimization also applies to all other apps. The website now shows the correct pronounciation of Sia at top of the homepage. Code and content changes were made to the homepage to improve SEO and new user experience — the Grants program is now prominently featured on the homepage. Migrate from nginx to caddy for serving website and other apps.
core UI libraries
ContractTimeline now shows the proof window. ContractTimeline component is now aware of both block height and time units. Added PaginatorKnownTotal and PagniatorUnknownTotal. Fixed xxs Text size. Added useClientFilters. Button now has active and inactive variants. The tailwind theme now supports text fill and shadow fill. Fixed Button svg coloring. Added useTableState. Table component now has configurable empty and loading states. Add base MenuItem components. Added a max length of 200 characters to toast messages. Added more block time conversion functions. Added ConfigurationText, ConfigurationTipText. Added HoverCard. The TextField autofill coloring is now consistent across browsers. AppSettings now has a password protected hooks mode. Add useSettingsUpdate hook for PUT /settings.
Other Foundation Happenings Advent of Code merch
We’ve received the shirts for our Advent of Code participants! If you completed at least seven days during our December event, contact me at [email protected] if you haven’t heard from me already.Grants Program
The proposals continue! After approving Messari’s grant and recommending that Log Store re-apply at a later date, the committee recently reviewed another two, with a third and fourth on the docket for this week. The committee approved our biggest grant yet, and we’re incredibly excited to fill you with the latest update over at blog.sia.tech.
Our Grants Program page on sia.tech was also updated to include a Grantee FAQ to answer some common questions that might come up during and after your grant proposal.
If you think you’ve got a great idea to benefit the Sia ecosystem, submit your proposal over at forum.sia.tech.That’s all folks
As we look towards the end of Q1 and the beginning of Q2, we can be proud of the quiet progress we’ve made. The growth of our grants program, the focus on scalability in our new apps, and the quality of both our team and community are all we need to continue driving to success.
Until next time!
steve#4381 on Discord