Our primary development goal is the activation of the “v2” hardfork. “v2” is our codename for a massive overhaul to Sia’s consensus mechanisms. It will modernize Sia’s core consensus code and provide a number of usability, performance, and quality-of-life improvements to the network. We are currently working with partners on the necessary updates and ensuring that their is a smooth transition for the ecosystem.
Shortly after the hardfork, we will be working on reducing onboarding friction for users, developers, and enterprises including:
- Light worker agents to increase horizontal scalability for enterprises, but also enable users to download and upload objects from all of their devices.
- Simple SDKs for developers to interact with the Sia network directly.
- A mobile and web app that lets all users take advantage of the cost savings, privacy, accessibility, and performance advantages of decentralized storage without the hassle of buying crypto or managing storage contracts.
“v2” is an umbrella term that refers to an upcoming radical overhaul of Sia’s consensus code. The primary change is the transition from a large, unwieldy database of UTXOs to a compact cryptographic accumulator, bringing myriad benefits to performance, scalability, and functionality. This is a big deal: it requires changing the block and transaction formats, which have been untouched since Sia’s mainnet launch back in 2014. As such, we are taking this opportunity to clean up a few other warts in Sia’s consensus code, giving the project a solid foundation for many years to come. For a more technical dive on how Utreexo works, check out Luke’s blog post here and MIT Bitcoin talk here.
- UTreexo
- Improved UTXO spend policies
- “Composable” unlock conditions
- HTLC support for atomic swaps
- Storage contract changes
- Early contract termination
- Collateral efficient renewals
- Renter Host Protocol Improvements
- Increased download and upload speeds
- Web browser support
December 2024
- Release v2.0 ready software - Complete
- Announce activation dates - Complete
March 2025
- Upgrade Zen testnet - Complete
June 2025
RHP4, short for renter-host protocol 4, is the next iteration of the protocol hosts and renters use to communicate. Our goal for RHP4 is to increase the parallelism of data uploads, reduce protocol overhead, and improve download performance. A new protocol is required to enable some exciting new features to be available after the Utreexo hardfork, such as early contract termination, capacity reservation, and contract renewal fund rollover. RHP4 will also enable storage consumers to download and upload data directly in the browser without installing additional software.
- Improved upload and download performance
- Concurrent uploads
- Decentralized uploads and downloads in a browser without downloading software
May 2025
- Complete support for web transport - In Progress
- Release Sia SDK beta - In Progress
The new Sia renter, replacing the current siad
renter module. Drawing on what we’ve learned from siad
, skyd
, and us
, we designed renterd
from the ground up to be modular and horizontally scalable. Although the average user likely won’t notice, a renterd
deployment is actually a set of interconnected services. As such, it can distribute workloads in parallel across multiple machines, and can be configured to store its metadata in any SQL backend. This flexibilty makes renterd
easier to integrate with other Sia ecosystem software, such as Sia Satellite and S5, and addresses the scalability barriers that have historically hampered enterprise solutions.
January 2025
- Release hardfork ready v2.0.0 - Complete
June 2025
- Browser support for uploads and downloads
- Native file sharing
- Less complicated setup
The new Sia host, replacing the current siad
host module. The host module has been chronically neglected for years, and suffers from poor upload performance, data integrity issues, and a general lack of user-friendliness. hostd
is our greenfield reimagining of the Sia hosting experience, bringing a sorely-needed refresh to our host community. Aside from addressing performance bottlenecks, hostd
also -offers superior metrics and monitoring tools, which will allow users to make informed decisions about storage allocations, contract parameters, pricing, and quality of service.
December 2024
- Release hardfork ready v2.0.0 - Complete
June 2025
- Web browser support - In Progress
The new Sia wallet, replacing the current siad
wallet module. walletd
aims to be the go-to option for average holders, lite wallet developers, exchanges and miners that need a secure place to store their SC. Accordingly, it supports both hot and cold setups, including multi-sig schemes and hardware wallet integration. Like renterd
and hostd
, walletd
comes packaged with a sleek, yet powerful UI, which can be securely accessed from any device.
Note: you do not need walletd
to be a renter or a host; renterd
and hostd
include their own built-in hot wallets.
December 2024
- Release hardfork ready v2.0.0 - Complete
The new Sia explorer, replacing and going far beyond the current siad
explorer capabilities. explored
will serve as both a standalone blockchain explorer with a web interface, and as a library providing powerful indexing and searching capabilities to third-party explorers (e.g. SiaStats) and “lite-client” systems like narwal
. explored
will be developed and launched alongside the Utreexo overhaul, making it one of the world’s first Utreexo-native block explorers.
March 2025
- Release hardfork ready v2.0.0 - In Progress
Document version date: Mar 2, 2025Apr 8, 2025This PR moves the entitylist component and its related subcomponents out of design-system
and into explorer
. I brought BlockList
over as well.
The only snafu is with the PeerList
component, so I rewrote this using only the props that it needed. This component is used across our non-explorer apps, so this likely needs a manual QA'ing to make sure things work as expected with it.
Apr 8, 2025Not sure how we missed this for so long
http: panic serving 172.18.0.17:43362: runtime error: slice bounds out of range [450:1]
goroutine 7191094 [running]:
net/http.(*conn).serve.func1()
/usr/local/go/src/net/http/server.go:1947 +0xbe
panic({0xe8b8e0?, 0xc000350198?})
/usr/local/go/src/runtime/panic.go:791 +0x132
go.sia.tech/renterd/v2/alerts.(*Manager).Alerts(0xc0002b0680, {0xc00018a620?, 0xc002180140?}, {0x0?, 0x0?, 0x0?})
/renterd/alerts/alerts.go:242 +0x53e
go.sia.tech/renterd/v2/bus.(*Bus).handleGETAlerts(0xc0001d2c80, {{0x19142d0, 0xc00018a620}, 0xc002180140, {0x0, 0x0, 0x0}})
/renterd/bus/routes.go:1858 +0x24a
Apr 8, 2025Easier use of ephemeral outputs for atomic swaps
Apr 8, 2025Bumps the dependencies group with 3 updates: github.com/mattn/go-sqlite3, golang.org/x/sys and golang.org/x/term.
Updates github.com/mattn/go-sqlite3
from 1.14.24 to 1.14.27
Commits
8d69329
revert #1259
9794660
docs: clarify GCP section
b9f4d8c
chore: Fix memory leak in callbackRetText function
7658c06
Fix sqlite3_opt_unlock_notify with USE_LIBSQLITE3 (#1262)
c61eeb5
remove superfluous use of runtime.SetFinalizer on SQLiteRows
ab13d63
Remove suggestion that CGO isn't always needed (#1290)
348128f
Upgrade upload-artifact action
82bc911
close statement when missing query arguments
- See full diff in compare view
Updates golang.org/x/sys
from 0.31.0 to 0.32.0
Commits
01aaa83
all: simplify code by using modern Go constructs
1b2bd6b
windows: replace all StringToUTF16 calls with UTF16FromString
1c3b72f
unix: update Linux kernel to 6.14
c175b6b
windows: add cmsghdr and pktinfo structures
3330b5e
unix: support Readv, Preadv, Writev and Pwritev for darwin
7401cce
cpu: replace specific instructions with WORD in the function get_cpucfg on lo...
b8f7da6
cpu: add support for detecting cpu features on loong64
f2ce62c
windows: add constants for PMTUD socket options
- See full diff in compare view
Updates golang.org/x/term
from 0.30.0 to 0.31.0
Commits
5d2308b
go.mod: update golang.org/x dependencies
e770ddd
x/term: disabling auto-completion around GetPassword()
- See full diff in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it
@dependabot merge
will merge this PR after your CI passes on it
@dependabot squash and merge
will squash and merge this PR after your CI passes on it
@dependabot cancel merge
will cancel a previously requested merge and block automerging
@dependabot reopen
will reopen this PR if it is closed
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot show <dependency name> ignore conditions
will show all of the ignore conditions of the specified dependency
@dependabot ignore <dependency name> major version
will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
@dependabot ignore <dependency name> minor version
will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
@dependabot ignore <dependency name>
will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
@dependabot unignore <dependency name>
will remove all of the ignore conditions of the specified dependency
@dependabot unignore <dependency name> <ignore condition>
will remove the ignore condition of the specified dependency and ignore conditions
Apr 7, 2025Bumps the all-dependencies group with 2 updates: github.com/mattn/go-sqlite3 and golang.org/x/term.
Updates github.com/mattn/go-sqlite3
from 1.14.24 to 1.14.27
Commits
8d69329
revert #1259
9794660
docs: clarify GCP section
b9f4d8c
chore: Fix memory leak in callbackRetText function
7658c06
Fix sqlite3_opt_unlock_notify with USE_LIBSQLITE3 (#1262)
c61eeb5
remove superfluous use of runtime.SetFinalizer on SQLiteRows
ab13d63
Remove suggestion that CGO isn't always needed (#1290)
348128f
Upgrade upload-artifact action
82bc911
close statement when missing query arguments
- See full diff in compare view
Updates golang.org/x/term
from 0.30.0 to 0.31.0
Commits
5d2308b
go.mod: update golang.org/x dependencies
e770ddd
x/term: disabling auto-completion around GetPassword()
- See full diff in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it
@dependabot merge
will merge this PR after your CI passes on it
@dependabot squash and merge
will squash and merge this PR after your CI passes on it
@dependabot cancel merge
will cancel a previously requested merge and block automerging
@dependabot reopen
will reopen this PR if it is closed
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot show <dependency name> ignore conditions
will show all of the ignore conditions of the specified dependency
@dependabot ignore <dependency name> major version
will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
@dependabot ignore <dependency name> minor version
will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
@dependabot ignore <dependency name>
will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
@dependabot unignore <dependency name>
will remove all of the ignore conditions of the specified dependency
@dependabot unignore <dependency name> <ignore condition>
will remove the ignore condition of the specified dependency and ignore conditions
Apr 7, 2025Bumps the all-dependencies group with 2 updates: golang.org/x/crypto and golang.org/x/sys.
Updates golang.org/x/crypto
from 0.36.0 to 0.37.0
Commits
959f8f3
go.mod: update golang.org/x dependencies
769bcd6
ssh: use the configured rand in kex init
d0a798f
cryptobyte: fix typo 'octects' into 'octets' for asn1.go
acbcbef
acme: remove unnecessary []byte conversion
376eb14
x509roots: support constrained roots
b369b72
crypto/internal/poly1305: implement function update in assembly on loong64
6b853fb
ssh/knownhosts: check more than one key
- See full diff in compare view
Updates golang.org/x/sys
from 0.31.0 to 0.32.0
Commits
01aaa83
all: simplify code by using modern Go constructs
1b2bd6b
windows: replace all StringToUTF16 calls with UTF16FromString
1c3b72f
unix: update Linux kernel to 6.14
c175b6b
windows: add cmsghdr and pktinfo structures
3330b5e
unix: support Readv, Preadv, Writev and Pwritev for darwin
7401cce
cpu: replace specific instructions with WORD in the function get_cpucfg on lo...
b8f7da6
cpu: add support for detecting cpu features on loong64
f2ce62c
windows: add constants for PMTUD socket options
- See full diff in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it
@dependabot merge
will merge this PR after your CI passes on it
@dependabot squash and merge
will squash and merge this PR after your CI passes on it
@dependabot cancel merge
will cancel a previously requested merge and block automerging
@dependabot reopen
will reopen this PR if it is closed
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot show <dependency name> ignore conditions
will show all of the ignore conditions of the specified dependency
@dependabot ignore <dependency name> major version
will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
@dependabot ignore <dependency name> minor version
will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
@dependabot ignore <dependency name>
will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
@dependabot unignore <dependency name>
will remove all of the ignore conditions of the specified dependency
@dependabot unignore <dependency name> <ignore condition>
will remove the ignore condition of the specified dependency and ignore conditions
View full activity feed →