The State of Sia, May 2023

Steve
The Sia Blog
Published in
7 min readMay 16, 2023

--

We’re back with the State of Sia, a monthly installment looking at development and team updates for The Sia Foundation.

Spring has sprung for the Sia team. We’ve been monitoring the release of the renterd beta in our Discord and are finding that not only do people really like the new software, they really love the new UI. Alex’s part-facelift, part-reconstructive surgery has done wonders for Sia after being neglected for quite literally years in the form of our previous gen Sia-UI. It’s great to see our software have a friendly new face, and we’ll be working hard on documentation for it in the weeks to come.

We’ve created a new category on the forums for Proposal Ideas. If you have an idea for a project you think could be valuable to the Sia ecosystem or uses Sia in an important way, we’d love to hear it! All forum users can vote on ideas they like, and the best-voted ideas may get turned into grants of their own. In fact, we just received our first grant proposal based off of one of these ideas.

The Foundation’s Q1 2023 report is now available, and we just published the latest Grants Update blog post. The latter has a quick rundown of numbers and projects to commemorate six months!

For our final bit of “pre-good stuff” exposition, the Sia team attended the MIT Bitcoin expo, an event that we’ve sponsored for quite a few years now. It was great to catch up with the local community, talk with users, and judge hackathon participants. Congrats to the winners!

And now, on with the show.

Development

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 available in beta.

  • Added Zen Testnet publish workflow. Automatically builds a Docker image and binaries for use with the Zen Testnet (Link)
  • Fixed an underflow when computing health for “lost” files (Link)
  • Set content-type header when serving objects (Link)
  • Fixed range requests for downloads (Link)
  • Fixed issue where renterd would potentially form multiple contracts with the same host (Link)
  • Fixed a rare panic related to contract locking (Link)
  • Fixed an issue where downloads would randomly return corrupted data (Link)
  • Upgraded uploads to use rhpv3 protocol instead of rhpv2 (Link)
  • Migrate renewals to use rhpv3 protocol instead of rhpv2 (Link)
  • Contracts will only become unusable for uploads if they haven’t renewed by the start of the second half of the renew window (Link)
  • Reduced the prefix length for IPv6 addresses used to geographically distribute hosts we form contracts with (Link)
  • Fixed bug in host pruning (Link)
  • Fixed bug in contract archival (Link), (Link)
  • Fixed bug in price table updates (Link)
  • Fixed various panics (host scoring) (Link)
  • Improved contractor performance (most notably fetching revisions happens in parallel now — big speed improvement there) (Link)
  • Added validation to autopilot configuration (Link)

renterd-benchmark

  • Added parallel upload benchmarking tools to the renterd benchmarking tool (Link)

hostd

hostd is the app you’ll be using to rent out your excess storage space to the Sia network. The hostd repo is public.

  • Added RHP3 websocket handler and SSL certificate management. Enables interacting with hosts directly from web browsers (Link)
  • Added API endpoints for querying host logs. Logs can now be queried and filtered through the API. Useful for remote setups (Link)
  • Fixed missing proofs for append, delete, swap and read instructions (Link)
  • Fixed an issue where rejected contracts would continue to be checked every block (Link)
  • Added DynDNS to host settings, added update flow, and endpoints (Link)
  • Added pricing to metrics. This will let hosts track pricing changes over time (Link)
  • Expose the contract resolution height. This will enable the UI to display the payout height for each contract (Link)
  • Added filesystem endpoints for exposing directories and disk sizes for remote management (Link), (Link)
  • Added PriceTableValidity to the host settings (Link)
  • Added ephemeral account settings to the host settings (Link)

core

The core repo is public and can be found here.

  • Added “MidStates” to core. This reifies an important concept in consensus code, making validation and application code more powerful and easier to understand (Link)
  • Implemented core transaction pool. The transaction pool is a key component of any blockchain system, and will be used by all core-based Sia node software. Compared to siad, we took a slightly different approach in core by merging the pool with the chain management code (Link)
  • Added tests for the consensus code in v1 core: (Link), (Link). Basically checking that bad transactions are rejected (inputs > outputs, double spends, invalid contracts, etc).

walletd

walletd will be Sia’s new stand-alone wallet app.

  • We now have a fully-functionality core-based Sia wallet that can connect to peers, sync the chain, and send and receive siacoins. The next step is to implement a UI around the walletd server. We’ll aim to get an alpha version out in May.

ledger sia-x

  • We’ve been working on porting the existing Ledger app to the new Ledger Stax (Link)

web

The following work might be done on renterd or hostd’s UI, the website, or other web-adjacent repos. Check the links, and the repos containing the various UIs being worked on can be found here.

  • The files explorer now shows the total size of directories (Link)
  • The sync screen now shows the correct network block height when using the Zen testnet (Link)
  • The unlock form now times out after 5s and shows a new ‘Error, daemon did not respond’ error — this occurs when the wallet is re-indexing (Link)
  • The hosts explorer column state icons are now more clear, some columns now use a gray negative or non-initialized state (Link)
  • The network block height is now estimated. renterd no longer uses SiaStats for anything so the 3rd party data privacy toggle has also been removed (Link)
  • The file menu now provides “Copy URL”, and “Copy authenticated URL” functions (Link)
  • The files copy metadata option is now disabled in the data is unavailable or fetching (Link)
  • The wallet sparklines have been temporarily hidden until we have support for all inflow/outflow events such as returned allowance (Link)
  • The files feature now supports UTF-8 directory and file names (Link)
  • The home dashboard now shows a variety of metrics and allows changing the data time range (Link)
  • Charts now supports grouping stats by category, such as hostd earned and potential revenue (Link)
  • The contracts explorer now allows filtering on status and contract ID, these are also accessible via the global ⌘K palette (Link)
  • The contracts explorer now features columns for a contract timeline, siacoin usage by type, data size, and more (Link)
  • The contracts explorer now supports view column configuration and sorting by status and timeline (Link)
  • The sync screen now shows the correct network block height when using the Zen testnet (Link)
  • Charts now have loading states (Link)
  • Button now has a text color override prop (Link)
  • ChartXY now shows the tooltip for zero values (Link)
  • Menu item disabled states have been improved (Link)
  • ChartXY now supports custom data labels (Link)
  • Select now supports a custom icon (Link)
  • The toast API has been extended to support generic React components (Link)
  • Toasts now use proper default styling when used in apps (Link)
  • The autopilot target price default value calculation has been corrected (Link)
  • Siacoin inputs are now easier to use, especially when entering and editing decimal values (Link)
  • The txpool and wallet transaction lists now show the specific type of transaction (Link)
  • Fixed a bug in the send siacoin transaction flow (Link)
  • Host and contract explorer view menus now allow toggling column visibility by group (Link)
  • The host explorer view menu now allows toggling column visibility by group (Link)
  • Autopilot estimates are now accurately labeled with TiB units (Link)
  • renterd now has proper page titles (Link)
  • The host menu now provides an option to trigger a manual rescan (Link)
  • Autopilot and config features now show any input errors (Link)
  • Host and contract tables now show 50 items per page (Link)
  • The renterd sidenav no longer flickers when changing tabs (Link)
  • The autopilot and configuration features now have an option to reset all changes (Link)
  • The gouging max storage price setting is now entered as a value per TiB per month, and properly stored a value per byte per block (Link)
  • The host explorer table now includes columns for the host price table and host settings (Link)
  • Autopilot feature is now enabled properly (Link)

workshop

  • Organized and created a new Sia workshop and documentation (Link)

That’s all folks

Thanks for another great month! We’ll be back in a few weeks as we really get into summer and bring big new updates to our host of apps.

Until next time!

Discord, Email

Steve

steve#4381 on Discord

--

--