Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Activity

A feed of development activity from across Sia Foundation GitHub repositories.

Apr 14, 2025

This should effectively get rid of the database is locked error by preventing parallel connections. It's like wrapping a mutex around every database interaction and seems to be the recommended way of doing this.

The benchmarks seem to be mostly unaffected which makes sense considering that they are single-threaded. To see how it performs in practice we'll need to run it on a used host.

Going through https://sqlite.org/faq.html#q6 lead me to https://sqlite.org/threadsafe.html and it seems like it's generally recommended to use the SQLITE_CONFIG_SINGLETHREAD threading mode if locking isn't required to speed up performance. However, I haven't been able to figure out how to do that from the Go driver.

Closes https://github.com/SiaFoundation/hostd/issues/643

The before and after results of the existing benchmarks:

Before:

goos: darwin
goarch: arm64
pkg: go.sia.tech/hostd/v2/persist/sqlite
cpu: Apple M2 Pro
BenchmarkTrimSectors
BenchmarkTrimSectors-12        	  217003	      5595 ns/op	    217003 sectors	    1843 B/op	      50 allocs/op
BenchmarkV2AppendSectors
BenchmarkV2AppendSectors-12    	  170421	     12802 ns/op	    170421 sectors	    2800 B/op	      43 allocs/op
BenchmarkV2TrimSectors
BenchmarkV2TrimSectors-12      	 1356486	       949.9 ns/op	   1356486 sectors	       0 B/op	       0 allocs/op
BenchmarkVolumeGrow
BenchmarkVolumeGrow-12         	  407421	      3158 ns/op	    407421 sectors	     224 B/op	       8 allocs/op
BenchmarkVolumeShrink
BenchmarkVolumeShrink-12       	  716907	      1891 ns/op	    716907 sectors	       0 B/op	       0 allocs/op
BenchmarkVolumeMigrate
BenchmarkVolumeMigrate-12      	      18	  64587782 ns/op	        18.00 sectors	   11207 B/op	     298 allocs/op
BenchmarkStoreSector
BenchmarkStoreSector-12        	    7747	    160465 ns/op	      7747 sectors	    9243 B/op	     225 allocs/op
BenchmarkReadSector
BenchmarkReadSector-12         	   35526	     31730 ns/op	     35526 sectors	    4782 B/op	      94 allocs/op
PASS
ok  	go.sia.tech/hostd/v2/persist/sqlite	953.837s

After:

goos: darwin
goarch: arm64
pkg: go.sia.tech/hostd/v2/persist/sqlite
cpu: Apple M2 Pro
BenchmarkTrimSectors
BenchmarkTrimSectors-12        	  235959	      5596 ns/op	    235959 sectors	    1843 B/op	      50 allocs/op
BenchmarkV2AppendSectors
BenchmarkV2AppendSectors-12    	  175136	     12997 ns/op	    175136 sectors	    2800 B/op	      43 allocs/op
BenchmarkV2TrimSectors
BenchmarkV2TrimSectors-12      	 1344559	       934.5 ns/op	   1344559 sectors	       0 B/op	       0 allocs/op
BenchmarkVolumeGrow
BenchmarkVolumeGrow-12         	  410400	      3112 ns/op	    410400 sectors	     224 B/op	       8 allocs/op
BenchmarkVolumeShrink
BenchmarkVolumeShrink-12       	  724045	      1898 ns/op	    724045 sectors	       0 B/op	       0 allocs/op
BenchmarkVolumeMigrate
BenchmarkVolumeMigrate-12      	      18	  66599769 ns/op	        18.00 sectors	   11230 B/op	     298 allocs/op
BenchmarkStoreSector
BenchmarkStoreSector-12        	    7740	    154748 ns/op	      7740 sectors	    9240 B/op	     225 allocs/op
BenchmarkReadSector
BenchmarkReadSector-12         	   35342	     31820 ns/op	     35342 sectors	    4783 B/op	      94 allocs/op
PASS
ok  	go.sia.tech/hostd/v2/persist/sqlite	970.016s
Apr 14, 2025

Bumps the all-dependencies group with 1 update: github.com/go-sql-driver/mysql.

Updates github.com/go-sql-driver/mysql from 1.9.1 to 1.9.2

Release notes

Sourced from github.com/go-sql-driver/mysql's releases.

v1.9.2

What's Changed

v1.9.2 is a re-release of v1.9.1 due to a release process issue; no changes were made to the content.

Full Changelog: https://github.com/go-sql-driver/mysql/compare/v1.9.1...v1.9.2

Changelog

Sourced from github.com/go-sql-driver/mysql's changelog.

v1.9.2 (2025-04-07)

v1.9.2 is a re-release of v1.9.1 due to a release process issue; no changes were made to the content.

Commits

Dependabot compatibility score

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 11, 2025
Apr 10, 2025
Apr 9, 2025
Apr 9, 2025
Apr 9, 2025
Apr 9, 2025
Apr 9, 2025

Fixes #647

Apr 8, 2025
Apr 8, 2025

This 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, 2025
Apr 8, 2025
Apr 8, 2025

Not 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, 2025

Easier use of ephemeral outputs for atomic swaps

Apr 8, 2025

Bumps 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, 2025

Bumps 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, 2025

Bumps 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
Apr 4, 2025
Apr 4, 2025
Apr 4, 2025
Apr 4, 2025

This disables the tests that will fail as a result of disabling the renewedFrom and renewedTo buttons until such time as those are available. That said, the next PR up the stack will fail. The one after that I'm aiming to succeed with this PR. The final one, adjusting the testing suite to fully utilize clusterd, obviously changes all this. I wanted to see the pre-cluster testing succeed to verify assumptions, if that makes sense.

Apr 4, 2025
Apr 4, 2025
Apr 4, 2025
Apr 3, 2025
  • Add missing explored param.
  • Upgrade explored.
Apr 3, 2025
  • Fixed the map when zero hosts are found.
Apr 1, 2025
  • The explorer now shows specific syncing and indexing warnings.
Mar 31, 2025

This PR was created automatically. Merging it will create a new release for 0.10.5

  • Add Mul helper to Usage type
  • Fixed an issue with memory aliasing of merkle proofs
Mar 31, 2025

Bumps the all-dependencies group with 1 update: go.sia.tech/web/renterd.

Updates go.sia.tech/web/renterd from 0.77.1 to 0.79.0

Release notes

Sourced from go.sia.tech/web/renterd's releases.

[email protected]

Minor Changes

  • e32e617f: The host explorer now has a version column.
  • e32e617f: The host explorer now has columns for v2 settings.
  • e32e617f: The host explorer address column now gets populates v2 host addresses.

[email protected]

Minor Changes

  • 96a58672: The siascan setting toggle was removed from the cmd+k menu.
  • 96a58672: Averages prices in the configuration page are based off v2 settings once the current network passes the allow height.
  • 9e603732: File download behaviour is now consistent across all browsers.
  • 96a58672: Host geolocation data is now provided by the configured explorer.
  • 96a58672: Privacy and security settings quick nav actions were added to the cmd+k menu.
  • 96a58672: Averages prices in the configuration page are now provided by the configured explorer.
Commits
  • e4af330 chore: release packages
  • e617f65 fix(hostd): contact explorer total and modes
  • e32e617 feat(renterd): host explorer v2 settings columns
  • d95a0d4 refactor(explorer): hastings to fiat method name
  • 0bf07ad fix(hostd): use immature field for immature balance
  • a56df5a chore(explorer): update explored APIs
  • 0d5ca6e chore: export renterd/v0.78.0 hostd/v0.60.0
  • 5aba425 chore: release packages
  • ab80eb6 feat(hostd): remove announce button
  • 6a3bcdb feat(explorer): v2 median prices after hardfork
  • Additional commits viewable in compare view

Dependabot compatibility score

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
Mar 28, 2025
  • The contract explorer now has distinct v1 and v2 viewing modes.
  • Fixed an issue where the contract explorer did not show the correct total number of contracts.

Screenshot 2025-03-28 at 1.32.22 PM.png

Screenshot 2025-03-28 at 1.32.18 PM.png

Mar 28, 2025
  • The host explorer now has a version column.
  • The host explorer now has columns for v2 settings.

Screenshot 2025-03-26 at 4.35.19 PM.png

Screenshot 2025-03-26 at 4.35.07 PM.png

Screenshot 2025-03-26 at 4.34.36 PM.png

Mar 28, 2025
  • Small change to make method name more specific/accurate.
Mar 28, 2025

Bumps the go_modules group with 1 update: golang.org/x/net.

Updates golang.org/x/net from 0.34.0 to 0.36.0

Commits
  • 85d1d54 go.mod: update golang.org/x dependencies
  • cde1dda proxy, http/httpproxy: do not mismatch IPv6 zone ids against hosts
  • fe7f039 publicsuffix: spruce up code gen and speed up PublicSuffix
  • 459513d internal/http3: move more common stream processing to genericConn
  • aad0180 http2: fix flakiness from t.Log when GOOS=js
  • b73e574 http2: don't log expected errors from writing invalid trailers
  • 5f45c77 internal/http3: make read-data tests usable for server handlers
  • 43c2540 http2, internal/httpcommon: reject userinfo in :authority
  • 1d78a08 http2, internal/httpcommon: factor out server header logic for h2/h3
  • 0d7dc54 quic: add Conn.ConnectionState
  • Additional commits viewable in compare view

Dependabot compatibility score

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 You can disable automated security fix PRs for this repo from the Security Alerts page.
Mar 28, 2025

Adds support for loading custom network parameters from a local file. This makes it easier to setup local testnets for development. A network file can be specified by using a file path for the --network CLI flag. The file should be JSON or YAML formatted with the following structure:

{
  "network": {
    "name": "zen",
    "initialCoinbase": "300000000000000000000000000000",
    "minimumCoinbase": "30000000000000000000000000000",
    "initialTarget": "0000000100000000000000000000000000000000000000000000000000000000",
    "blockInterval": 600000000000,
    "maturityDelay": 144,
    "hardforkDevAddr": {
      "height": 1,
      "oldAddress": "000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69",
      "newAddress": "000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69"
    },
    "hardforkTax": {
      "height": 2
    },
    "hardforkStorageProof": {
      "height": 5
    },
    "hardforkOak": {
      "height": 10,
      "fixHeight": 12,
      "genesisTimestamp": "2023-01-13T00:53:20-08:00"
    },
    "hardforkASIC": {
      "height": 20,
      "oakTime": 10000000000000,
      "oakTarget": "0000000100000000000000000000000000000000000000000000000000000000"
    },
    "hardforkFoundation": {
      "height": 30,
      "primaryAddress": "053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807",
      "failsafeAddress": "000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69"
    },
    "hardforkV2": {
      "allowHeight": 112000,
      "requireHeight": 114000
    }
  },
  "genesis": {
    "parentID": "0000000000000000000000000000000000000000000000000000000000000000",
    "nonce": 0,
    "timestamp": "2023-01-13T00:53:20-08:00",
    "minerPayouts": null,
    "transactions": [
      {
        "id": "268ef8627241b3eb505cea69b21379c4b91c21dfc4b3f3f58c66316249058cfd",
        "siacoinOutputs": [
          {
            "value": "1000000000000000000000000000000000000",
            "address": "3d7f707d05f2e0ec7ccc9220ed7c8af3bc560fbee84d068c2cc28151d617899e1ee8bc069946"
          }
        ],
        "siafundOutputs": [
          {
            "value": 10000,
            "address": "053b2def3cbdd078c19d62ce2b4f0b1a3c5e0ffbeeff01280efb1f8969b2f5bb4fdc680f0807"
          }
        ]
      }
    ]
  }
}

Closes https://github.com/SiaFoundation/walletd/issues/265

Mar 28, 2025

This should go a long way towards catching memory aliasing bugs like https://github.com/SiaFoundation/core/pull/290. I should have done this ages ago. 😬 Basically, the linter flags anything like:

sce := txn.SiacoinInputs[0].Parent // "shallow copy of SiacoinElement; use Move, Share, or Copy"
cau.UpdateElementProof(&sce)

To silence it, you annotate each copy with one of those ownership methods, and then we panic if you try to call UpdateElementProof on an element that you don't exclusively own.

Annotating every copy is kind of annoying, but it wasn't too onerous to churn through them once the linter was working. In case it's not clear, the idea is:

  • Default to Copy.
  • If you're not going to retain the element (e.g. if you're a function that just inspects elements and returns them), you can use Share. Putting the element inside of a struct (like a transaction) counts as retaining it! Usually, it's okay to use Share when passing an element to a function (and consequently, if you're a function that takes an element, you should treat it as shared).
  • If you "own" the element and you just need to tweak it for whatever reason, you can use Move. This is most common when calling UpdateElementProof on each element in a map (since can't get a pointer to map values, you need to make a temporary copy, update that, then store it back in the map). Move is like Share, except you "retain ownership" so you're still allowed to update the proof.

One nice thing about this approach is that it's opt-in. If you're importing core, you don't need to be aware of any of this stuff, even if you're directly touching elements. But you are encouraged to run the linter on your code and annotate all your copies. I've done this with coreutils and it was pretty easy.

The biggest shortcoming is that this won't detect shallow copies of structs containing an element. For example, if you copy a transaction without .DeepCopy, it won't complain. Flagging every such copy would be impractical, since you would need to add Copy/Share/Move methods to every type containing an element.

Lastly -- yes, this is (to paraphrase Greenspun) "an ad hoc, informally-specified, bug-ridden, slow implementation of half of Rust."

Mar 27, 2025
Mar 27, 2025

This PR was created automatically. Merging it will finalize the changelog for 2.1.0

Added two new endpoints [GET] /outputs/siacoin/:id/spent and [GET] /outputs/siafund/:id/spent. These endpoints will return a boolean, indicating whether the UTXO was spent, and the transaction it was spent in. These endpoints are designed to make verifying Atomic swaps easier.

Example Usage

$ curl http://localhost:9980/api/outputs/siacoin/9b89152bb967130326702c9bfb51109e9f80274ec314ba58d9ef49b881340f2f/spent
{
    spent: true,
    event: {}
}
```

### Fixes sending V2 transactions in the UI

- Fixes V2 signing for wallets that do not have siafund outputs. Fixes #247
Mar 27, 2025

This PR fixes a regression with migration time for mostly empty volumes by skipping unused sectors instead of checking each one. This may reintroduce the race condition with unmigrated sectors -- should test thoroughly before release.

Mar 26, 2025
Mar 26, 2025
Mar 25, 2025
  • The announce button has been removed in favor of automatic announcements.
Mar 25, 2025
  • The home page will now show median prices based off v2 host settings after the allow height.
Mar 25, 2025
  • Made some tweaks around sync status since the node height is not the actual network height until fully synced.
  • The hardfork countdown only shows if the explorer is fully synced.
  • The explorer now shows a warning banner if syncing is in progress.

Screenshot 2025-03-25 at 3.29.17 PM.png

Mar 25, 2025
Mar 25, 2025
  • Added v2Settings to Host.
  • Added v2Settings to HostMetrics.
  • Fixed useHostsList to be a declarative hook.
Mar 25, 2025
  • Added external data hooks for getting host metrics (average prices etc) and hosts list (geolocation).
    • The apps and sites use these hooks.
    • These hooks use the daemon configured explorer in renterd and hostd and they use the siascan setting and api.siascan.com in walletd, explorer, and the website.
  • Exchange rate and other external data hooks now live in the design-system.
Mar 25, 2025
  • Discussed the meaning of these fields and v2 heights in general again today, so thought it would be worth adding some comments for the next passerby.
Mar 25, 2025

Bumps the all-dependencies group with 1 update: go.sia.tech/web/walletd.

Updates go.sia.tech/web/walletd from 0.29.1 to 0.29.2

Release notes

Sourced from go.sia.tech/web/walletd's releases.

[email protected]

Patch Changes

  • cad48e35: Fixed an issue where a v2ContractResolution event in the wallet would crash the app. Closes SiaFoundation/hostd#629
Commits
  • f8d7650 chore: release packages
  • b9cb439 feat(hostd): v2 contracts
  • ce20d28 feat(hostd-libs): add v2 contracts api
  • cad48e3 fix(hostd): issue with events v2ContractResolution type
  • e63d981 feat(explorer): change average price titles to median
  • ea9cc58 fix(explorer): change protocolVersion to an array and join
  • 7d137c1 feat(explorer): add v2 hardfork countdowns to home page
  • cf5ac11 chore(cluster): install v2 module paths
  • 7147e15 feat(explorer): use v2Settings for host page display
  • 1bc11c2 chore(explorer-e2e): e2e target should build dependencies
  • Additional commits viewable in compare view

Dependabot compatibility score

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
Mar 25, 2025

Removes the experimental key store. It will be moved and provided as part of an external seed vault.

Mar 24, 2025
Mar 24, 2025

Bumps the all-dependencies group with 2 updates: github.com/go-sql-driver/mysql and go.sia.tech/web/renterd.

Updates github.com/go-sql-driver/mysql from 1.9.0 to 1.9.1

Release notes

Sourced from github.com/go-sql-driver/mysql's releases.

v1.9.1

What's Changed

New Contributors

Full Changelog: https://github.com/go-sql-driver/mysql/compare/v1.9.0...v1.9.1

Changelog

Sourced from github.com/go-sql-driver/mysql's changelog.

v1.9.1 (2025-03-21)

Major Changes

  • Add Charset() option. (#1679)

Bugfixes

  • go.mod: fix go version format (#1682)
  • Fix FormatDSN missing ConnectionAttributes (#1619)
Commits

Updates go.sia.tech/web/renterd from 0.77.0 to 0.77.1

Release notes

Sourced from go.sia.tech/web/renterd's releases.

[email protected]

Patch Changes

  • cad48e35: Fixed an issue where a v2ContractResolution event in the wallet would crash the app. Closes SiaFoundation/hostd#629
Commits
  • f8d7650 chore: release packages
  • b9cb439 feat(hostd): v2 contracts
  • ce20d28 feat(hostd-libs): add v2 contracts api
  • cad48e3 fix(hostd): issue with events v2ContractResolution type
  • e63d981 feat(explorer): change average price titles to median
  • ea9cc58 fix(explorer): change protocolVersion to an array and join
  • 7d137c1 feat(explorer): add v2 hardfork countdowns to home page
  • cf5ac11 chore(cluster): install v2 module paths
  • 7147e15 feat(explorer): use v2Settings for host page display
  • 1bc11c2 chore(explorer-e2e): e2e target should build dependencies
  • Additional commits viewable 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
Mar 24, 2025

Improve migrate performance when removing large volumes. The old query took on ~2s to complete, while the split query takes ~3ms. This should help reduce database is locked failures for active hosts.

Mar 21, 2025
Mar 21, 2025
Mar 21, 2025
Mar 21, 2025
  • Move a copy of these mocks right to where they are used. The entire walletd-mock library is being deleted in subsequent PR.
Mar 21, 2025

This is part of the implementation of two endpoints relevant to mining pools for creating a block template and submitting a block after mining. Similar to BIP22.

What's still missing apart from tests and client methods is long polling. But before that I'd like to discuss this and have consensus on whether we want to actually implement it like this.

The caveat here is that we need to return separate versions for block encoding and transactions for the client to know how to decode them.

Overall, if we expect the client to already do all the work of building the block header and handling the different encodings correctly, it seems a little forced to implement these endpoints. I'm not sure about how big the upside is but I'm also not a miner.

Mar 20, 2025
Mar 20, 2025

fix comment

Mar 20, 2025

We currently don't infer a content type for multipart uploads. Only regular uploads. To be consistent with regular uploads and common S3 client implementations, this PR changes multipart uploads to also infer the type from the extension and if that doesn't work set it to application/octet-stream.

Mar 19, 2025

🙃

Mar 19, 2025

This adds a useful helper to Usage. e.g. when computing how much funds to put into a contract it's nice to be able to do RPCAppendSectorCost.Mul(sectorsPerTiB) or whatever.

Mar 19, 2025
Mar 19, 2025
Mar 19, 2025
Mar 18, 2025
Mar 18, 2025
Mar 18, 2025

Enables overriding the RHP4 port from the CLI instead of requiring config changes.

Also bumps core and coreutils

Mar 17, 2025
Mar 17, 2025

Tested with YAML:

seed: [ENTER SEED HERE]
directory: "."
autoOpenWebUI: true
network: mainnet
shutdownTimeout: 5m0s
log:
    level: info
    stdout:
        enabled: true
        format: human
        enableANSI: true
    file:
        enabled: true
        format: human
http:
    address: localhost:9980
    password: test
autopilot:
    enabled: true
    heartbeat: 30m0s
    migrationHealthCutoff: 0.8
    migratorParallelSlabsPerWorker: 2
    revisionBroadcastInterval: 168h0m0s
    revisionSubmissionBuffer: 150
    scannerInterval: 4h0m0s
    scannerBatchSize: 100
    scannerNumThreads: 10
bus:
    persistInterval: 1m0s
    announcementMaxAgeHours: 8736
    bootstrap: true
    gatewayAddr: :9981
    usedUtxoExpiry: 24h0m0s
    slabBufferCompleionThreshold: 4096
worker:
    contractLockTimeout: 1h0m0s
    enabled: true
    id: worker
    accountsRefillInterval: 10s
    busFlushInterval: 5s
    downloadOverdriveTimeout: 3s
    uploadOverdriveTimeout: 3s
    downloadMaxOverdrive: 5
    downloadMaxMemory: 1073741824
    uploadMaxMemory: 1073741824
    uploadMaxOverdrive: 5
s3:
    address: localhost:8080
    enabled: true
    keypairsV4:
      foo: bar
database:
    log:
        enabled: true
        level: info
        ignoreRecordNotFoundError: true
        slowThreshold: 500ms
    mysql:
        user: renterd
        database: renterd
        metricsDatabase: renterd_metrics

On master this errors out with

➜  local2 ./renterd_master
failed to load config file: failed to decode config file: yaml: unmarshal errors:
  line 21: field migrationHealthCutoff not found in type config.Autopilot
  line 22: field migratorParallelSlabsPerWorker not found in type config.Autopilot
  line 29: field persistInterval not found in type config.Bus
  line 36: field contractLockTimeout not found in type config.Worker
  line 50: field keypairsV4 not found in type config.S3
  line 53: field log not found in type config.Database

On pj/upgrade-v111config compat runs fine and migrates the YAML properly.

Fixes https://github.com/SiaFoundation/renterd/issues/1852

Mar 14, 2025

This PR updates the description where I felt it was lacking or missing entirely.

One thing I noticed is that most informative descriptions are a bit buried in the schema and object descriptions which aren't visible by default in a swagger editor. For example, the issue I linked mentioned a missing description for what the owner of an account is, which is in the schema but not immediately obvious indeed

Screenshot 2025-03-13 at 15 37 44

Closes https://github.com/SiaFoundation/renterd/issues/1843

Mar 13, 2025

Adds godoc examples for the wallet client and transaction construction

Mar 13, 2025

Bumps the go_modules group with 1 update: golang.org/x/net.

Updates golang.org/x/net from 0.34.0 to 0.36.0

Commits
  • 85d1d54 go.mod: update golang.org/x dependencies
  • cde1dda proxy, http/httpproxy: do not mismatch IPv6 zone ids against hosts
  • fe7f039 publicsuffix: spruce up code gen and speed up PublicSuffix
  • 459513d internal/http3: move more common stream processing to genericConn
  • aad0180 http2: fix flakiness from t.Log when GOOS=js
  • b73e574 http2: don't log expected errors from writing invalid trailers
  • 5f45c77 internal/http3: make read-data tests usable for server handlers
  • 43c2540 http2, internal/httpcommon: reject userinfo in :authority
  • 1d78a08 http2, internal/httpcommon: factor out server header logic for h2/h3
  • 0d7dc54 quic: add Conn.ConnectionState
  • Additional commits viewable in compare view

Dependabot compatibility score

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 You can disable automated security fix PRs for this repo from the Security Alerts page.
Mar 12, 2025

It seems like on busy databases, UPDATE volume_sectors SET sector_id=null WHERE id=$1 fails to upgrade from a shared to an exclusive lock https://github.com/SiaFoundation/hostd/issues/616

To avoid that I'd like to propose combining the select and update into a single query. That way SQLite should be able to figure out that the transaction needs to be exclusive from the very beginning rather than trying to upgrade from a shared to an exclusive lock and failing to do so cause it ends up in a deadlock situation. This way I expect it to correctly make use of the PENDING state, block until it can acquire the lock and then do its thing without being starved by other goroutines.

Mar 12, 2025
Mar 11, 2025
Mar 11, 2025
Mar 11, 2025

https://pkg.go.dev/go.sia.tech/walletd?utm_source=godoc shows v0.8.0 as the latest version. However, we have since released v2.0.0. This makes it more difficult to import and use walletd's API client. This adds the required /v2 suffix to the module path to satisfy Go Doc. It is very unfortunate that all importers of the package will need to update their dependency to go.sia.tech/walletd/v2.

I am not positive that this will fix the issue, but the go documentation suggests this is required even if you want the package to stay in the root.

Mar 11, 2025

Bumps the dependencies group with 4 updates: go.sia.tech/core, golang.org/x/sys, golang.org/x/term and golang.org/x/time.

Updates go.sia.tech/core from 0.10.3 to 0.10.4

Release notes

Sourced from go.sia.tech/core's releases.

0.10.4 (2025-03-10)

Fixes

  • Fixed several implementations of MaxLen where it was returning a too low number, resulting in decoding errors during contract related RPCs.
Changelog

Sourced from go.sia.tech/core's changelog.

0.10.4 (2025-03-10)

Fixes

  • Fixed several implementations of MaxLen where it was returning a too low number, resulting in decoding errors during contract related RPCs.
Commits
  • d91b56f chore: prepare release 0.10.4
  • 96754dc build(deps): bump the all-dependencies group with 2 updates
  • 487e0bb Update .changeset/fixed_several_implementations_of_maxlen_where_it_was_return...
  • 2c8ed42 Update .changeset/fixed_several_implementations_of_maxlen_where_it_was_return...
  • e72a38d docs: add changelog entry for MaxLen fix
  • 3f58a79 chore(doc): comment rhp4 settings
  • 9a49925 knope: updat config
  • d652370 Merge pull request #284 from SiaFoundation/pj/max-len
  • bbcee7a encoding: fix maxLen
  • 67d8e73 build(deps): bump golang.org/x/crypto in the all-dependencies group
  • See full diff in compare view

Updates golang.org/x/sys from 0.30.0 to 0.31.0

Commits

Updates golang.org/x/term from 0.29.0 to 0.30.0

Commits
  • 04218fd go.mod: update golang.org/x dependencies
  • 208db03 all: upgrade go directive to at least 1.23.0 [generated]
  • See full diff in compare view

Updates golang.org/x/time from 0.10.0 to 0.11.0

Commits
  • 0c50ed8 all: upgrade go directive to at least 1.23.0 [generated]
  • 66520f6 rate: simplify function advance only returns new Tokens to caller
  • 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
Mar 11, 2025

Bumps the all-dependencies group with 1 update in the / directory: go.sia.tech/core.

Updates go.sia.tech/core from 0.10.3 to 0.10.4

Release notes

Sourced from go.sia.tech/core's releases.

0.10.4 (2025-03-10)

Fixes

  • Fixed several implementations of MaxLen where it was returning a too low number, resulting in decoding errors during contract related RPCs.
Changelog

Sourced from go.sia.tech/core's changelog.

0.10.4 (2025-03-10)

Fixes

  • Fixed several implementations of MaxLen where it was returning a too low number, resulting in decoding errors during contract related RPCs.
Commits
  • d91b56f chore: prepare release 0.10.4
  • 96754dc build(deps): bump the all-dependencies group with 2 updates
  • 487e0bb Update .changeset/fixed_several_implementations_of_maxlen_where_it_was_return...
  • 2c8ed42 Update .changeset/fixed_several_implementations_of_maxlen_where_it_was_return...
  • e72a38d docs: add changelog entry for MaxLen fix
  • 3f58a79 chore(doc): comment rhp4 settings
  • 9a49925 knope: updat config
  • d652370 Merge pull request #284 from SiaFoundation/pj/max-len
  • bbcee7a encoding: fix maxLen
  • 67d8e73 build(deps): bump golang.org/x/crypto in the all-dependencies group
  • See full diff in compare view

Updates golang.org/x/crypto from 0.34.0 to 0.36.0

Commits
  • 49bf5b8 go.mod: update golang.org/x dependencies
  • 24852b6 ssh: add decode support for banners
  • bbc689c ssh: use a more straightforward return value
  • 7292932 ssh: limit the size of the internal packet queue while waiting for KEX
  • See full diff in compare view

Updates golang.org/x/term from 0.29.0 to 0.30.0

Commits
  • 04218fd go.mod: update golang.org/x dependencies
  • 208db03 all: upgrade go directive to at least 1.23.0 [generated]
  • 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
Mar 11, 2025

Bumps the all-dependencies group with 4 updates: go.sia.tech/core, go.sia.tech/web/walletd, golang.org/x/crypto and golang.org/x/term.

Updates go.sia.tech/core from 0.10.3 to 0.10.4

Release notes

Sourced from go.sia.tech/core's releases.

0.10.4 (2025-03-10)

Fixes

  • Fixed several implementations of MaxLen where it was returning a too low number, resulting in decoding errors during contract related RPCs.
Changelog

Sourced from go.sia.tech/core's changelog.

0.10.4 (2025-03-10)

Fixes

  • Fixed several implementations of MaxLen where it was returning a too low number, resulting in decoding errors during contract related RPCs.
Commits
  • d91b56f chore: prepare release 0.10.4
  • 96754dc build(deps): bump the all-dependencies group with 2 updates
  • 487e0bb Update .changeset/fixed_several_implementations_of_maxlen_where_it_was_return...
  • 2c8ed42 Update .changeset/fixed_several_implementations_of_maxlen_where_it_was_return...
  • e72a38d docs: add changelog entry for MaxLen fix
  • 3f58a79 chore(doc): comment rhp4 settings
  • 9a49925 knope: updat config
  • d652370 Merge pull request #284 from SiaFoundation/pj/max-len
  • bbcee7a encoding: fix maxLen
  • 67d8e73 build(deps): bump golang.org/x/crypto in the all-dependencies group
  • See full diff in compare view

Updates go.sia.tech/web/walletd from 0.29.0 to 0.29.1

Release notes

Sourced from go.sia.tech/web/walletd's releases.

[email protected]

Patch Changes

  • a8e77c6c: Fixed V2 signing for wallets that do not have siafund outputs.
Commits
  • e5b9df8 chore: release packages
  • 5f4ebab refactor(explorer): rely on successfulInteractions for unscanned hosts
  • c93054e fix(explorer): shorten contract opengraph image date display
  • 9323af7 feat(explorer): add v2 host type support
  • 443c4a4 feat(explored-types): add v2 host type support
  • cb7fd2b test(explorer): add v2 host title support
  • 05778c2 fix(walletd): update test for new v2 signing
  • b90ee0e fix(walletd): remove duplicate keypair call
  • a8e77c6 fix(walletd,types): fix signing v2 transactions when the wallet does not have...
  • 2d83b41 fix(explorer): fix one-off transaction confirmation count
  • Additional commits viewable in compare view

Updates golang.org/x/crypto from 0.34.0 to 0.36.0

Commits
  • 49bf5b8 go.mod: update golang.org/x dependencies
  • 24852b6 ssh: add decode support for banners
  • bbc689c ssh: use a more straightforward return value
  • 7292932 ssh: limit the size of the internal packet queue while waiting for KEX
  • See full diff in compare view

Updates golang.org/x/term from 0.29.0 to 0.30.0

Commits
  • 04218fd go.mod: update golang.org/x dependencies
  • 208db03 all: upgrade go directive to at least 1.23.0 [generated]
  • 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
Mar 11, 2025
Mar 10, 2025
Mar 10, 2025

This PR was created automatically. Merging it will create a new release for 0.10.4

  • Fixed several implementations of MaxLen where it was returning a too low number, resulting in decoding errors during contract related RPCs.
Mar 10, 2025

Bumps the all-dependencies group with 2 updates: golang.org/x/crypto and golang.org/x/sys.

Updates golang.org/x/crypto from 0.35.0 to 0.36.0

Commits
  • 49bf5b8 go.mod: update golang.org/x dependencies
  • 24852b6 ssh: add decode support for banners
  • bbc689c ssh: use a more straightforward return value
  • See full diff in compare view

Updates golang.org/x/sys from 0.30.0 to 0.31.0

Commits

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
Mar 10, 2025
Mar 10, 2025

This PR batch updates wallet outputs which yields a pretty big performance improvement over executing the prepared statement for every row in our table. It's about a 15x performance improvement at the cost of using twice the memory and doing twice as many allocations. If you have ~300 outputs the combined updates on MySQL take ~150ms on my machine.

I found out about this because I want to redistribute our wallet into 100 outputs by default. This led to some tests failing where we mine a lot of blocks in quick succession. We always update all the elements, regardless of whether their proof changed. I understand that in most cases we'll roughly have to update half or even all of the elements but I still feel we could change the interface of the updater so that it returns a boolean that indicates if the proof got updated.

This is the function that is doing the slow updates:

func updateSiacoinStateElements(ctx context.Context, tx sql.Tx, elements []SiacoinStateElement) error {
	updateStmt, err := tx.Prepare(ctx, "UPDATE wallet_outputs SET leaf_index = ?, merkle_proof= ? WHERE output_id = ?")
	if err != nil {
		return fmt.Errorf("failed to prepare statement to update state elements: %w", err)
	}
	defer updateStmt.Close()

	for _, el := range elements {
		if _, err := updateStmt.Exec(ctx, el.LeafIndex, MerkleProof{el.MerkleProof}, el.ID); err != nil {
			return fmt.Errorf("failed to update state element '%v': %w", el.ID, err)
		}
	}
	return nil
}

As you can see the query is very straightforward. I double checked the schema anyway to see if it had the required indices and it does (through the UNIQUE on output_id). I also verified the execution plan which indicates it's properly using the index.

MySQL EXPLAIN output:

id	select_type	table	partitions	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	UPDATE	wallet_outputs	NULL	range	output_id	output_id	34	const	1	100.00	Using where

This code is not ready to merge yet, I wanted to open this DRAFT to open up a discussion on whether we care about this. I'm on the fence personally, I'm leaning towards adding it because it speeds up our tests so much and because it's quite sad we can't easily blow through hundreds of blocks in our test suite. If we do decide to merge it we have to have split implementations for MySQL and SQLite because this is 7x slower on SQLite.

Mar 10, 2025

Adds some doc comments to the RHP4 settings

Mar 10, 2025

https://github.com/SiaFoundation/core/pull/284 did not have a changeset entry, but that was done on purpose. I looked through recently merged core PRs and noticed we don't always add it, figured that fix did not really need one per se either. I updated the knope config to be consistent with all other repos.

Mar 10, 2025

Bumps the all-dependencies group with 4 updates: golang.org/x/crypto, golang.org/x/sys, golang.org/x/term and golang.org/x/time.

Updates golang.org/x/crypto from 0.35.0 to 0.36.0

Commits
  • 49bf5b8 go.mod: update golang.org/x dependencies
  • 24852b6 ssh: add decode support for banners
  • bbc689c ssh: use a more straightforward return value
  • See full diff in compare view

Updates golang.org/x/sys from 0.30.0 to 0.31.0

Commits

Updates golang.org/x/term from 0.29.0 to 0.30.0

Commits
  • 04218fd go.mod: update golang.org/x dependencies
  • 208db03 all: upgrade go directive to at least 1.23.0 [generated]
  • See full diff in compare view

Updates golang.org/x/time from 0.10.0 to 0.11.0

Commits
  • 0c50ed8 all: upgrade go directive to at least 1.23.0 [generated]
  • 66520f6 rate: simplify function advance only returns new Tokens to caller
  • 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
Mar 9, 2025

There are several instances where maxLen returns a size that doesn't take into account a transaction being part of the request. While updating I noticed some values diverged from their impl probably due to changes being made to the request/response structs over time. I took them along with me but the important ones are the reasonableTransactionSetSize ones of course.

I found out because my v2 migration on my node, which was chugging along nicely, halted all of a sudden. Contracts were no longer being refreshed, resulting in empty accounts, resulting in failed migrations. One thing that's puzzling me a bit though is the error message: "couldn't renew/refresh contract: host responded with error: failed to read host inputs response: failed to read request: EOF ". That error message seems impossible, I double checked and I still can't explain how you could ever get failed to read response, failed to read request.

Mar 7, 2025

Adds an optional ed25519 signing key store for integrators to store arbitrary private keys for signing transactions. It allows for both generating private keys on the server and importing private keys.

The endpoint will return 404 if the --public CLI flag is set. It is not used by the UI.


client := api.NewClient(walletAddr, walletdPassword)

pubKey, err := client.GenerateSigningKey()
if err != nil {
    panic(err)
}

sig, err := client.SignHash(pubKey, hash)
if err != nil {
    panic(err)
}

The test diff does not spark joy, but I don't want to split it out. The only one with material changes is the new one at the bottom

Mar 7, 2025

This PR was created automatically. Merging it will finalize the changelog for 2.0.1

  • Fix default S3 address in README.md
  • Fix issue with remaining storage and version scoring for v2 hosts
  • Improve logging in v2 migration code and fix scan during migration not timing out
Mar 7, 2025
Mar 4, 2025
Mar 4, 2025

Fixes #624

Mar 4, 2025

Bumps the all-dependencies group with 2 updates: go.sia.tech/core and go.sia.tech/coreutils.

Updates go.sia.tech/core from 0.10.2 to 0.10.3

Release notes

Sourced from go.sia.tech/core's releases.

0.10.3 (2025-02-25)

Fixes

  • Improved SectorRoot performance by a factor of 10 by distributing work across available CPU cores
  • Update mux dependency to 1.4.0
Changelog

Sourced from go.sia.tech/core's changelog.

0.10.3 (2025-02-25)

Fixes

  • Improved SectorRoot performance by a factor of 10 by distributing work across available CPU cores
  • Update mux dependency to 1.4.0
Commits

Updates go.sia.tech/coreutils from 0.11.1 to 0.12.0

Release notes

Sourced from go.sia.tech/coreutils's releases.

0.12.0 (2025-02-28)

Breaking Changes

Separate RHP4 Transports

The SiaMux and QUIC transports are now separated into go.sia.tech/rhp/v4/siamux and go.sia.tech/rhp/v4/quic packages. Both packages define a Dial and Serve helper that can be used to either start a transport server or connect to a host using the transport.

Features

Add RPCReplenishAccounts Implementation

Implements RPCReplenishAccounts in the RHP4 client and server enabling clients managing a large number of accounts to fund them quicker

Fixes

  • Fixes an issue where wallet redistributing would fail if the number of outputs created were less than requested
  • Fix data race in EphemeralWalletStore.
  • Fixed an issue with event confirmations not being correctly unmarshalled
  • Increase default max streams from 100 to 1000 for QUIC transport
  • Update core to v0.10.2 and mux to v1.4.0
Changelog

Sourced from go.sia.tech/coreutils's changelog.

0.12.0 (2025-02-28)

Breaking Changes

Separate RHP4 Transports

The SiaMux and QUIC transports are now separated into go.sia.tech/rhp/v4/siamux and go.sia.tech/rhp/v4/quic packages. Both packages define a Dial and Serve helper that can be used to either start a transport server or connect to a host using the transport.

Features

Add RPCReplenishAccounts Implementation

Implements RPCReplenishAccounts in the RHP4 client and server enabling clients managing a large number of accounts to fund them quicker

Fixes

  • Fixes an issue where wallet redistributing would fail if the number of outputs created were less than requested
  • Fix data race in EphemeralWalletStore.
  • Fixed an issue with event confirmations not being correctly unmarshalled
  • Increase default max streams from 100 to 1000 for QUIC transport
  • Update core to v0.10.2 and mux to v1.4.0
Commits
  • 3d4a3d2 Merge pull request #177 from SiaFoundation/release
  • 0dbf0e4 chore: prepare release 0.12.0
  • 482e4e8 Merge pull request #188 from SiaFoundation/nate/update-deps
  • 0e87f3f update dependencies
  • 8fec9a5 Merge pull request #187 from SiaFoundation/nate/fix-fatal
  • 2158172 siamux,quic: switch upgrade failure to debug
  • ab7a3b2 Merge pull request #186 from SiaFoundation/nate/increase-max-streams
  • 1c51221 quic: increase max streams
  • d01f7fa consistent protocol const
  • 51cb482 Merge pull request #185 from SiaFoundation/nate/refactor-transports
  • Additional commits viewable 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
Mar 3, 2025

Bumps the all-dependencies group with 1 update: golang.org/x/crypto.

Updates golang.org/x/crypto from 0.33.0 to 0.35.0

Commits
  • 7292932 ssh: limit the size of the internal packet queue while waiting for KEX
  • f66f74b acme/autocert: check host policy before probing the cache
  • b0784b7 x509roots/fallback: drop obsolete build constraint
  • 911360c all: bump golang.org/x/crypto dependencies of asm generators
  • 89ff08d all: upgrade go directive to at least 1.23.0 [generated]
  • e47973b all: update certs for go1.24
  • See full diff in compare view

Dependabot compatibility score

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
Mar 2, 2025
Mar 1, 2025

in docker compose - it has to be hostd, not host

Feb 28, 2025

Adds two new endpoints for querying V2 contracts

Returns a single V2 contract by its ID

Queries a list of contracts with optional filtering

Example request body

{
  "statuses": [],
  "contractIDs": [],
  "renewedFrom": [],
  "renewedTo": [],
  "renterKey": [],
  "minNegotiationHeight": 0,
  "maxNegotiationHeight": 0,
  "minExpirationHeight": 0,
  "maxExpirationHeight": 0,
  "limit": 0,
  "offset": 0,
  "sortField": "",
  "sortDesc": false
}
Feb 28, 2025

This fixes an issue where V2 sector roots were not being properly loaded into the cache at startup and adds the integrity check method for v2 contracts.

Feb 28, 2025
Feb 28, 2025
Feb 28, 2025

This PR was created automatically. Merging it will create a new release for 0.10.3

  • Improved SectorRoot performance by a factor of 10 by distributing work across available CPU cores
  • Update mux dependency to 1.4.0
Feb 27, 2025

This fixes 2 scoring issues with v2 hosts related to version and remaining storage scores and also adds more testing for v2 host scoring.

Feb 25, 2025
Feb 25, 2025

Adds support for starting and configuring a RHP4 QUIC transport. Includes a very naive local cert manager with the intent to add automatic ACME-based certificate issuance in a follow-up.

Requires #612

Feb 25, 2025

Updates core and coreutils to the latest dev versions, migrates the RHP4 server to the coreutils implementation, adds the required interfaces for RPC Replenish, and adds an integration test for it.

Feb 25, 2025
Feb 25, 2025
goos: darwin
goarch: arm64
pkg: go.sia.tech/core/rhp/v2
cpu: Apple M2 Pro
BenchmarkSectorRoot
BenchmarkSectorRoot/serial
BenchmarkSectorRoot/serial-10                 49          23381873 ns/op         179.38 MB/s           0 B/op          0 allocs/op
BenchmarkSectorRoot/parallel
BenchmarkSectorRoot/parallel-10              326           3563796 ns/op        1176.92 MB/s       14806 B/op         34 allocs/op

Pretty unambiguous ~10x speedup when testing with a 10-core CPU. I experimented with inlining more of the appendLeaves logic into the worker goroutines, but it didn't have a significant impact on throughput and it made the code much more complex. ‾\_(ツ)_/‾

Feb 24, 2025

Bumps the dependencies group with 2 updates: go.sia.tech/core and go.sia.tech/mux.

Updates go.sia.tech/core from 0.10.1 to 0.10.2

Release notes

Sourced from go.sia.tech/core's releases.

0.10.2 (2025-02-20)

Features

Add helpers to get revision as an element from v1/v2 file contract element diffs

#274 by @​chris124567

In the old ForEachFileContractElement interface, the revision was provided as a pointer to a (V2)FileContractElement. In the new system of diffs, the revision is only provided as a (V2)FileContract. There are multiple places where it is useful to have the revision as an element, and in all of these places more or less the same code will be duplicated unless we create this helper.

Add RPCReplenish to RHP4

Adds an RPC to RHP4 that enables renters to set a target balance instead of first fetching the current balance and then funding the account with the difference. This is primarily to speed up account funding and reduce round trips when managing a large number of accounts.

Changelog

Sourced from go.sia.tech/core's changelog.

0.10.2 (2025-02-20)

Features

Add helpers to get revision as an element from v1/v2 file contract element diffs

##274 by @​chris124567

In the old ForEachFileContractElement interface, the revision was provided as a pointer to a (V2)FileContractElement. In the new system of diffs, the revision is only provided as a (V2)FileContract. There are multiple places where it is useful to have the revision as an element, and in all of these places more or less the same code will be duplicated unless we create this helper.

Add RPCReplenish to RHP4

Adds an RPC to RHP4 that enables renters to set a target balance instead of first fetching the current balance and then funding the account with the difference. This is primarily to speed up account funding and reduce round trips when managing a large number of accounts.

Commits
  • fe05f66 Merge pull request #275 from SiaFoundation/release
  • 8dd06fb chore: prepare release 0.10.2
  • dcacdc2 rhp4: use actual encoding sizes
  • 939a947 Merge pull request #277 from SiaFoundation/nate/fix-replenish-encoding
  • 9b4e96d encoding: set reasonable object size
  • 37d788f return deposits instead of cost sum
  • 5d00184 extend validate replenish accounts
  • 847e895 rhp: add validate for fund accounts request
  • 29bd92e add account batch size constant
  • 400d96c fix lint
  • Additional commits viewable in compare view

Updates go.sia.tech/mux from 1.3.0 to 1.4.0

Commits
  • fc41f91 Merge pull request #12 from SiaFoundation/flip-nonce
  • f736c2b v2: Add theirVersion parameter to Dial/AcceptAnonymous
  • 4ae5086 Merge pull request #11 from SiaFoundation/flip-nonce
  • 4057618 v2: Remove nonce derivation and hash pubkeys into shared secret
  • e057384 v2: Improve signature and nonce handling
  • abf58b0 Merge pull request #7 from SiaFoundation/dependabot/go_modules/go_modules-5a9...
  • fa24bad build(deps): bump golang.org/x/crypto in the go_modules group
  • 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
Feb 24, 2025

Bumps the all-dependencies group with 1 update: go.sia.tech/core.

Updates go.sia.tech/core from 0.10.1 to 0.10.2

Release notes

Sourced from go.sia.tech/core's releases.

0.10.2 (2025-02-20)

Features

Add helpers to get revision as an element from v1/v2 file contract element diffs

#274 by @​chris124567

In the old ForEachFileContractElement interface, the revision was provided as a pointer to a (V2)FileContractElement. In the new system of diffs, the revision is only provided as a (V2)FileContract. There are multiple places where it is useful to have the revision as an element, and in all of these places more or less the same code will be duplicated unless we create this helper.

Add RPCReplenish to RHP4

Adds an RPC to RHP4 that enables renters to set a target balance instead of first fetching the current balance and then funding the account with the difference. This is primarily to speed up account funding and reduce round trips when managing a large number of accounts.

Changelog

Sourced from go.sia.tech/core's changelog.

0.10.2 (2025-02-20)

Features

Add helpers to get revision as an element from v1/v2 file contract element diffs

##274 by @​chris124567

In the old ForEachFileContractElement interface, the revision was provided as a pointer to a (V2)FileContractElement. In the new system of diffs, the revision is only provided as a (V2)FileContract. There are multiple places where it is useful to have the revision as an element, and in all of these places more or less the same code will be duplicated unless we create this helper.

Add RPCReplenish to RHP4

Adds an RPC to RHP4 that enables renters to set a target balance instead of first fetching the current balance and then funding the account with the difference. This is primarily to speed up account funding and reduce round trips when managing a large number of accounts.

Commits
  • fe05f66 Merge pull request #275 from SiaFoundation/release
  • 8dd06fb chore: prepare release 0.10.2
  • dcacdc2 rhp4: use actual encoding sizes
  • 939a947 Merge pull request #277 from SiaFoundation/nate/fix-replenish-encoding
  • 9b4e96d encoding: set reasonable object size
  • 37d788f return deposits instead of cost sum
  • 5d00184 extend validate replenish accounts
  • 847e895 rhp: add validate for fund accounts request
  • 29bd92e add account batch size constant
  • 400d96c fix lint
  • Additional commits viewable in compare view

Dependabot compatibility score

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
Feb 24, 2025
Feb 24, 2025
Feb 24, 2025

This PR was created automatically. Merging it will create a new release for 0.10.2

#274 by @chris124567

In the old ForEachFileContractElement interface, the revision was provided as a pointer to a (V2)FileContractElement. In the new system of diffs, the revision is only provided as a (V2)FileContract. There are multiple places where it is useful to have the revision as an element, and in all of these places more or less the same code will be duplicated unless we create this helper.

Adds an RPC to RHP4 that enables renters to set a target balance instead of first fetching the current balance and then funding the account with the difference. This is primarily to speed up account funding and reduce round trips when managing a large number of accounts.

Feb 24, 2025

Bumps the all-dependencies group with 3 updates: github.com/google/go-cmp, go.sia.tech/mux and golang.org/x/crypto.

Updates github.com/google/go-cmp from 0.6.0 to 0.7.0

Release notes

Sourced from github.com/google/go-cmp's releases.

v0.7.0

New API:

  • (#367) Support compare functions with SortSlices and SortMaps

Panic messaging:

  • (#370) Detect proto.Message types when failing to export a field
Commits

Updates go.sia.tech/mux from 1.3.0 to 1.4.0

Commits
  • fc41f91 Merge pull request #12 from SiaFoundation/flip-nonce
  • f736c2b v2: Add theirVersion parameter to Dial/AcceptAnonymous
  • 4ae5086 Merge pull request #11 from SiaFoundation/flip-nonce
  • 4057618 v2: Remove nonce derivation and hash pubkeys into shared secret
  • e057384 v2: Improve signature and nonce handling
  • abf58b0 Merge pull request #7 from SiaFoundation/dependabot/go_modules/go_modules-5a9...
  • fa24bad build(deps): bump golang.org/x/crypto in the go_modules group
  • See full diff in compare view

Updates golang.org/x/crypto from 0.33.0 to 0.34.0

Commits
  • f66f74b acme/autocert: check host policy before probing the cache
  • b0784b7 x509roots/fallback: drop obsolete build constraint
  • 911360c all: bump golang.org/x/crypto dependencies of asm generators
  • 89ff08d all: upgrade go directive to at least 1.23.0 [generated]
  • e47973b all: update certs for go1.24
  • 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
Feb 21, 2025

Added two new endpoints [GET] /outputs/siacoin/:id/spent and [GET] /outputs/siafund/:id/spent.

These endpoints will return a boolean, indicating whether the UTXO was spent, and the transaction it was spent in. These endpoints are designed to make verifying atomic swaps easier. It is an acceptable limitation that spent utxos are only kept for 144 blocks and will return a 404 afterwards. This may be changed in a follow up.

Example Usage

$ curl http://localhost:9980/api/outputs/siacoin/9b89152bb967130326702c9bfb51109e9f80274ec314ba58d9ef49b881340f2f/spent
{
    spent: true,
    event: ...
}
```
Feb 20, 2025

Closes https://github.com/SiaFoundation/walletd/issues/236 Closes https://github.com/SiaFoundation/walletd/issues/237

README didn't match the actual output anymore. Added the MacOS example.

Feb 20, 2025

reasonableObjectSize is not enough for these batch types

Feb 19, 2025
Feb 19, 2025

Adds an RPC to RHP4 that enables renters to set a target balance for all accounts instead of first fetching the current balances then funding the accounts with the difference. This is primarily to speed up account funding and reduce round trips when managing a large number of accounts.

Feb 19, 2025
Feb 18, 2025

Bumps the all-dependencies group with 2 updates in the / directory: github.com/go-sql-driver/mysql and go.sia.tech/web/renterd.

Updates github.com/go-sql-driver/mysql from 1.8.1 to 1.9.0

Release notes

Sourced from github.com/go-sql-driver/mysql's releases.

v1.9.0

Major Changes

  • Implement zlib compression. (#1487)
  • Supported Go version is updated to Go 1.21+. (#1639)
  • Add support for VECTOR type introduced in MySQL 9.0. (#1609)
  • Config object can have custom dial function. (#1527)

Bugfixes

  • Fix auth errors when username/password are too long. (#1625)
  • Check if MySQL supports CLIENT_CONNECT_ATTRS before sending client attributes. (#1640)
  • Fix auth switch request handling. (#1666)

Other changes

  • Add "filename:line" prefix to log in go-mysql. Custom loggers now show it. (#1589)
  • Improve error handling. It reduces the "busy buffer" errors. (#1595, #1601, #1641)
  • Use strconv.Atoi to parse max_allowed_packet. (#1661)
  • rejectReadOnly option now handles ER_READ_ONLY_MODE (1290) error too. (#1660)

Full Changelog: https://github.com/go-sql-driver/mysql/compare/v1.8.1...v1.9.0

New Contributors

Changelog

Sourced from github.com/go-sql-driver/mysql's changelog.

v1.9.0 (2025-02-18)

Major Changes

  • Implement zlib compression. (#1487)
  • Supported Go version is updated to Go 1.21+. (#1639)
  • Add support for VECTOR type introduced in MySQL 9.0. (#1609)
  • Config object can have custom dial function. (#1527)

Bugfixes

  • Fix auth errors when username/password are too long. (#1625)
  • Check if MySQL supports CLIENT_CONNECT_ATTRS before sending client attributes. (#1640)
  • Fix auth switch request handling. (#1666)

Other changes

  • Add "filename:line" prefix to log in go-mysql. Custom loggers now show it. (#1589)
  • Improve error handling. It reduces the "busy buffer" errors. (#1595, #1601, #1641)
  • Use strconv.Atoi to parse max_allowed_packet. (#1661)
  • rejectReadOnly option now handles ER_READ_ONLY_MODE (1290) error too. (#1660)
Commits

Updates go.sia.tech/web/renterd from 0.76.0 to 0.77.0

Release notes

Sourced from go.sia.tech/web/renterd's releases.

[email protected]

Minor Changes

  • 54a4eabe: Displayed entity values which are often truncated can now be copied to clipboard by double-clicking directly on the visible characters.
  • 54a4eabe: Wallet addresses can now be copied to clipboard by clicking on the QR code in the address dialog.
Commits
  • c71aa1d chore: release packages
  • 9e24edc fix(explorer): remove async from ContractHeader component export
  • 60e5d05 refactor(walletd): ledger wallet warn at require height
  • 93b2e77 fix(walletd): switching send modes unsets other amount
  • 453b541 feat(walletd): v2 ledger transactions
  • 1c6e8c1 feat(walletd): v2 seed transactions
  • 819c066 feat(walletd): v2 seed signing
  • 306400b feat(design-system): value label support
  • 8c34848 refactor: remove unused types
  • 5457012 feat(walletd-libs): construct api and v2 api changes
  • Additional commits viewable 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
Feb 17, 2025

Bumps the dependencies group with 1 update: go.sia.tech/web/hostd.

Updates go.sia.tech/web/hostd from 0.57.0 to 0.58.0

Release notes

Sourced from go.sia.tech/web/hostd's releases.

[email protected]

Minor Changes

  • 54a4eabe: Displayed entity values which are often truncated can now be copied to clipboard by double-clicking directly on the visible characters.
  • 54a4eabe: Wallet addresses can now be copied to clipboard by clicking on the QR code in the address dialog.
Commits
  • c71aa1d chore: release packages
  • 9e24edc fix(explorer): remove async from ContractHeader component export
  • 60e5d05 refactor(walletd): ledger wallet warn at require height
  • 93b2e77 fix(walletd): switching send modes unsets other amount
  • 453b541 feat(walletd): v2 ledger transactions
  • 1c6e8c1 feat(walletd): v2 seed transactions
  • 819c066 feat(walletd): v2 seed signing
  • 306400b feat(design-system): value label support
  • 8c34848 refactor: remove unused types
  • 5457012 feat(walletd-libs): construct api and v2 api changes
  • Additional commits viewable in compare view

Dependabot compatibility score

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
Feb 17, 2025

Bumps the all-dependencies group with 1 update: go.sia.tech/web/walletd.

Updates go.sia.tech/web/walletd from 0.28.0 to 0.29.0

Release notes

Sourced from go.sia.tech/web/walletd's releases.

[email protected]

Minor Changes

  • d73f9c3a: The send dialogs now indicate the network and transaction version details.
Commits
  • 44b75d8 chore: release packages
  • eb490d6 fix: website downloads
  • 4eb4849 fix: renterd prune validation
  • ef4fcab fix: renterd redundancy tooltip
  • 2edf9b7 fix: renterd refine contract graph logic
  • a64a77a feat: renterd host context menu copy
  • 2c80bec fix: explorer faucet 50k
  • a5c6618 feat: renterd aggregate contract stats
  • c32dcae fix: renterd health partial slabs
  • 64ca2b2 feat: alerts dialog all filter
  • Additional commits viewable in compare view

Dependabot compatibility score

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
Feb 14, 2025

There was a change in coreutils that makes it so the zero value of spend policy cannot be encoded or decoded. This changes the construction API to return an error if one of the funding addresses does not have a policy set.

Feb 14, 2025
Feb 14, 2025

Bumps the dependencies group with 1 update in the / directory: golang.org/x/time.

Updates golang.org/x/time from 0.9.0 to 0.10.0

Commits
  • 2c6c5a2 rate: prevent overflows when calculating durationFromTokens
  • See full diff in compare view

Dependabot compatibility score

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
Feb 11, 2025
Feb 11, 2025

The current event queries are optimized for addresses with a large number of events. When an address has a small number of events, queries take an extremely long time to complete.

QUERY PLAN
|--SCAN ev USING INDEX events_maturity_height_id_idx
|--SEARCH ci USING INTEGER PRIMARY KEY (rowid=?)
|--SEARCH ea USING COVERING INDEX event_addresses_event_id_address_id_idx (event_id=?)
--SEARCH wa USING COVERING INDEX sqlite_autoindex_wallet_addresses_1 (wallet_id=? AND address_id=?)

Removing the forced index allows queries for a small number of events to complete quickly, but fails for a large number due to the temp b-tree sort.

QUERY PLAN
|--SEARCH sa USING COVERING INDEX sqlite_autoindex_sia_addresses_1 (sia_address=?)
|--SEARCH ea USING INDEX event_addresses_address_id_idx (address_id=?)
|--SEARCH ev USING INTEGER PRIMARY KEY (rowid=?)
`--USE TEMP B-TREE FOR ORDER BY

This fixes the performance degradation in both cases and should allow the query to complete in less than 10ms on average for addresses with 0 to 10000000 events.

Feb 11, 2025
Feb 11, 2025

Bumps the all-dependencies group with 1 update: golang.org/x/term.

Updates golang.org/x/term from 0.28.0 to 0.29.0

Commits

Dependabot compatibility score

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
Feb 10, 2025

This PR was created automatically. Merging it will create a new release for 0.10.1

  • Fix Siafund ClaimStart not being recorded
Feb 10, 2025

my b

Feb 10, 2025

Bumps the all-dependencies group with 2 updates: golang.org/x/crypto and golang.org/x/sys.

Updates golang.org/x/crypto from 0.32.0 to 0.33.0

Commits
  • 9290511 go.mod: update golang.org/x dependencies
  • fa5273e x509roots/fallback: update bundle
  • a8ea4be ssh: add ServerConfig.PreAuthConnCallback, ServerPreAuthConn (banner) interface
  • 71d3a4c acme: support challenges that require the ACME client to send a non-empty JSO...
  • See full diff in compare view

Updates golang.org/x/sys from 0.29.0 to 0.30.0

Commits
  • 863b3c4 unix: update glibc to 2.41
  • 4d4692e unix: add Auxv
  • b215a1c unix: update to Linux kernel 6.13
  • c756214 cpu: add support for AVX-VNNI and IFMA detection
  • 1c14dca unix: add GetPeerUcred and UcredGet for solaris
  • 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
Feb 4, 2025

This PR was created automatically. Merging it will create a new release for 0.10.0

#270 by @lukechampine

This replaces the ForEach update API with slices of "diffs" -- new types wrapping the various element types. This was originally intended as an ergonomics improvement (since it's annoying to e.g. break out of a ForEach callback), but it ended up significantly simplifying most MidState-related code: it consolidated the interrelated maps within MidState, and enabled a much saner rewrite of the update JSON types.

I originally left the ForEach methods in place (with a // Deprecated warning), but later removed them entirely; we're going to update all the callsites in coreutils anyway, so there's little reason to keep them around. (ForEachTreeNode remains, though, since it's used by explored.)

An error will now be returned when trying to encode a transaction with an unset SpendPolicy

Feb 4, 2025

This replaces the ForEach update API with slices of "diffs" -- new types wrapping the various element types. This was originally intended as an ergonomics improvement (since it's annoying to e.g. break out of a ForEach callback), but it ended up significantly simplifying most MidState-related code: it consolidated the interrelated maps within MidState, and enabled a much saner rewrite of the update JSON types.

I originally left the ForEach methods in place (with a // Deprecated warning), but later removed them entirely; we're going to update all the callsites in coreutils anyway, so there's little reason to keep them around. (ForEachTreeNode remains, though, since it's used by explored.)

Jan 29, 2025

Fixes a panic in AddV2PoolTransactions when validating v2 transactions with nil spend policies. Uses the same strategy as currency overflows to validate once and assumes it is valid afterward. AddV2PoolTransactions should be able to handle unvalidated input without panicking.

NFO    http: panic serving [::1]:60723: unhandled policy type <nil>
goroutine 713398 [running]:
net/http.(*conn).serve.func1()
        /opt/homebrew/opt/go/libexec/src/net/http/server.go:1947 +0xb0
panic({0x103d2e900?, 0x140004bfd00?})
        /opt/homebrew/opt/go/libexec/src/runtime/panic.go:785 +0x124
go.sia.tech/core/types.SpendPolicy.encodePolicy({{0x0?, 0x0?}}, 0x1?)
        /Users/alexfreska/go/pkg/mod/go.sia.tech/[email protected]/types/encoding.go:604 +0x3a0
go.sia.tech/core/types.SpendPolicy.EncodeTo({{0x0?, 0x0?}}, 0x140005f8488)
        /Users/alexfreska/go/pkg/mod/go.sia.tech/[email protected]/types/encoding.go:612 +0x5c
go.sia.tech/core/types.SatisfiedPolicy.EncodeTo({{{0x0, 0x0}}, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}}, 0x140005f8488)
        /Users/alexfreska/go/pkg/mod/go.sia.tech/[email protected]/types/encoding.go:617 +0x4c
go.sia.tech/core/types.V2SiacoinInput.EncodeTo({{{0x5a, 0xe0, 0xf7, 0xba, 0xe3, 0xb, 0xea, 0xff, 0x82, 0x9a, ...}, ...}, ...}, ...)
        /Users/alexfreska/go/pkg/mod/go.sia.tech/[email protected]/types/encoding.go:633 +0x70
go.sia.tech/core/consensus.State.V2TransactionWeight({0x1400050c000, {0x262, {0xac, 0xf5, 0x34, 0xc8, 0xbd, 0x6d, 0x7a, 0x8e, ...}}, ...}, ...)
        /Users/alexfreska/go/pkg/mod/go.sia.tech/[email protected]/consensus/state.go:314 +0xe0
go.sia.tech/core/consensus.ValidateV2Transaction(_, {{0x140001f6840, 0x1, 0x1}, {0x1400021e660, 0x2, 0x2}, {0x0, 0x0, 0x0}, ...})
        /Users/alexfreska/go/pkg/mod/go.sia.tech/[email protected]/consensus/validation.go:866 +0xf4
go.sia.tech/coreutils/chain.(*Manager).checkTxnSet(0x14000134c08, {0x0, 0x0, 0x41e675be1ab4638c?}, {0x140005c9680, 0x1, 0x8e7a6dbdc834f5ac?})
        /Users/alexfreska/go/pkg/mod/go.sia.tech/[email protected]/chain/manager.go:1068 +0x8f8
go.sia.tech/coreutils/chain.(*Manager).AddV2PoolTransactions(0x14000134c08, {0x262, {0xac, 0xf5, 0x34, 0xc8, 0xbd, 0x6d, 0x7a, 0x8e, ...}}, ...)
        /Users/alexfreska/go/pkg/mod/go.sia.tech/[email protected]/chain/manager.go:1250 +0x2fc
go.sia.tech/walletd/api.(*server).txpoolBroadcastHandler(0x140005c8000, {{0x103e90fe0, 0x14000484ee0}, 0x140005ca640, {0x0, 0x0, 0x0}})
        /Users/alexfreska/go/pkg/mod/go.sia.tech/[email protected]/api/server.go:302 +0x194
go.sia.tech/walletd/api.NewServer.NewServer.func3.func16({{0x103e90fe0, 0x14000484ee0}, 0x140005ca640, {0x0, 0x0, 0x0}})
Jan 18, 2025

This PR was created automatically. Merging it will create a new release for 0.9.1

  • Fix account JSON encoding
Jan 18, 2025

Fixes the implementation of encoding.TextMarshaler on the rhp4.Account type. Will change the JSON encoding of an account from an array to a string.

Fixes an issue raised in https://github.com/SiaFoundation/web/pull/895