A feed of development activity from across Sia Foundation GitHub repositories.
Bumps the all-dependencies group with 1 update: go.sia.tech/jape.
Updates go.sia.tech/jape
from 0.11.2-0.20240306154058-9832414a5385 to 0.12.0
Commits
- 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
/wallet/:id/events
can be slow in full index mode when the wallet has no events. Adds a check to make sure the wallet has events before running the more expensive events query.
This PR adds a subnets
column to the hosts
table. This in an attempt to get rid of the redundant IP churn we saw on arequipa
. This is under the assumption that the churn is related to the way we deal with intermittent dns resolve issues, which up until now we've treated as redundant IPs because the ipFilter
returns a simple yes/no bool.
Merging in dev
required getting rid of the PeerStore
. Sorry for that @ChrisSchinnerl, it's a little awkward but since it's quite a straightforward migration could you glance at:
- stores/peers.go
- stores/sql/main.go
- stores/sql/mysql/main.go
I'll deploy it to my node in the mean time. (edit: keeping it in DRAFT
until panic in core
is resolved and I can confirm it's running smoothly)
I didn't bother writing it out but instead supplied an example compose file with the absolute minimum config requirements per service.
There's a docs PR following this one, but this one contains some small tweaks to the way we parse the config on startup. There's some small pitfalls in our config currently when it comes to setting up renterd
as a cluster of nodes.
- setting
worker.Enabled
tofalse
when remotes are configured makes it easier to build conditionals - appending
/api/worker
to the worker's external addr made it inconsistent withRENTERD_BUS_REMOTE_ADDR
- seed should only be required if you have at least a bus or worker, the autopilot doesn't require it
I purposefully kept it at that and did not try to refactor too much. I think for v2 we should consider taking another look at our config though. It's not the worst but it's definitely not prettiest either.
This min. requirements cluster setup docker-compose file works.
version: '3.9' services: bus: build: context: . dockerfile: ./docker/Dockerfile container_name: renterd_bus environment: - RENTERD_SEED=jump illness approve cry fabric alert fly post kind age keep bid - RENTERD_API_PASSWORD=bus-pass ports: - "9980:9980" - "9981:9981" worker-1: build: context: . dockerfile: ./docker/Dockerfile container_name: renterd_worker-1 environment: - RENTERD_AUTOPILOT_ENABLED=false - RENTERD_SEED=jump illness approve cry fabric alert fly post kind age keep bid - RENTERD_API_PASSWORD=worker-pass - RENTERD_BUS_API_PASSWORD=bus-pass - RENTERD_BUS_REMOTE_ADDR=http://bus:9980/api/bus - RENTERD_WORKER_EXTERNAL_ADDR=http://worker-1:9980/api/worker ports: - "9982:9980" depends_on: - bus worker-2: build: context: . dockerfile: ./docker/Dockerfile container_name: renterd_worker-2 environment: - RENTERD_SEED=jump illness approve cry fabric alert fly post kind age keep bid - RENTERD_API_PASSWORD=worker-pass - RENTERD_BUS_API_PASSWORD=bus-pass - RENTERD_BUS_REMOTE_ADDR=http://bus:9980/api/bus - RENTERD_WORKER_EXTERNAL_ADDR=http://worker-2:9980/api/worker ports: - "9983:9980" depends_on: - bus autopilot: build: context: . dockerfile: ./docker/Dockerfile container_name: renterd_autopilot environment: - RENTERD_API_PASSWORD=autopilot-pass - RENTERD_BUS_API_PASSWORD=bus-pass - RENTERD_BUS_REMOTE_ADDR=http://bus:9980/api/bus - RENTERD_WORKER_API_PASSWORD=<worker-password> - RENTERD_WORKER_REMOTE_ADDRS=http://worker-1:9980/api/worker;http://worker-2:9980/api/worker ports: - "9984:9980" depends_on: - bus - worker-1 - worker-2
This draft is a debugging test for all of the possible wallet events. This is not intended to be merged.
[ { "id": "h:4d0389ef76d72548fe5bd64c117e4fbcee594ce1573ec9539f4380abad256b1b", "index": { "height": 204, "id": "bid:868a93d5bb1b411bc73e56db36b75bc1cfedc72002ea2e11a9a63af2d6724aa7" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 349, "type": "siafundClaim", "data": { "siacoinElement": { "id": "h:4d0389ef76d72548fe5bd64c117e4fbcee594ce1573ec9539f4380abad256b1b", "leafIndex": 432, "merkleProof": null, "siacoinOutput": { "value": "2005827263267429760665970000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 348 } } }, { "id": "h:4712cf57e90de093a8ed52ec8831f376aac7c739847ec64f324525bf51d7bfc3", "index": { "height": 203, "id": "bid:6d37359564b7c36fb55c50f48aab4c2ae7545ce9b93ff1ab2f9511d1f20865b7" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 348, "type": "v2ContractResolution", "data": { "parent": { "id": "h:e773d79ce8ed3b5edf11572c3d56cc3908e6c0766479f09d21420df22ca416be", "leafIndex": 423, "merkleProof": [ "h:dec7cb8813aa21ebaec3da1d3a521903305079c382b2e37b1cc8e3c53e66c2db", "h:55bd6fb6bae8bc5063f20f67100dbee711e9fa75b5b0b50fc01d7e15e76b69a3", "h:14b049a779a996ef3c771669d30517798ef026c95ab5be146cab98dc3854e8cf", "h:d9d42af0c7eed9f89c605738f667e6b4248bfb93aa73c98d7c37b40bc9ec8f28" ], "v2FileContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 211, "expirationHeight": 221, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 0, "renterSignature": "sig:db264235ecadc89e63221e4e96347d560754d1f93939120c6d02c96e5207578e64067bd6a4313d9d84de019412d028ba98e182cde342f0cb4ffe1ec3f4783e03", "hostSignature": "sig:db264235ecadc89e63221e4e96347d560754d1f93939120c6d02c96e5207578e64067bd6a4313d9d84de019412d028ba98e182cde342f0cb4ffe1ec3f4783e03" } }, "type": "renewal", "resolution": { "finalRevision": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 211, "expirationHeight": 221, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 18446744073709551615, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "newContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 221, "expirationHeight": 231, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 0, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "renterRollover": "0", "hostRollover": "0", "renterSignature": "sig:984dea37a3897f6287fd04630e0878df5518e4ae95ff1cba7fa72a87b74cc85774306bba8ff563353b2d6bbca50e331f3dcf54eca3b36f14eb01dfdd7c07d00e", "hostSignature": "sig:984dea37a3897f6287fd04630e0878df5518e4ae95ff1cba7fa72a87b74cc85774306bba8ff563353b2d6bbca50e331f3dcf54eca3b36f14eb01dfdd7c07d00e" } } }, { "id": "h:51e066366b66e445725afe7fc54e85019c8b692aaa7502c36630d99e911ac98c", "index": { "height": 201, "id": "bid:5f4b2533cc467ab64e6032f4663819fa2c310fd180637349abbde5977c664fad" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 346, "type": "v2ContractResolution", "data": { "parent": { "id": "h:ee4c82247b462b875f7036b2076b1a525c97889a542c36b9e9ef1166fe74e781", "leafIndex": 397, "merkleProof": [ "h:f58e964cf335ac0a4f055755aa210e0f3e1d7c6de35711f09a3e2a8fd54470ba", "h:36841292b0e182ddaf8c761ffd9b71f9463cf4530a134fdf60d08ea9a084ce57", "h:155c83d210d64c97a0bd0310630748c7fa2226ef6e514d37079cd25f797d4162", "h:abb482c19f1a14b21033b0b7b8304f685857a4f10d06fb20f172b253657e425b", "h:5dba3a456ed101f794a36e3396e375a88f8050e1a0b28bc2a15f105fbc44762a" ], "v2FileContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 200, "expirationHeight": 210, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 0, "renterSignature": "sig:97385f262a2f8db3bd29b072b0ab7cc6dbe01843af09c9010675b3ec7db8a96dd199b3ede4df4ada81d41ca3b5ccb2ad6bfaa01071438ec6fce72e5f18bcd40a", "hostSignature": "sig:97385f262a2f8db3bd29b072b0ab7cc6dbe01843af09c9010675b3ec7db8a96dd199b3ede4df4ada81d41ca3b5ccb2ad6bfaa01071438ec6fce72e5f18bcd40a" } }, "type": "storage proof", "resolution": { "proofIndex": { "id": "h:3c95abbf4ee22cf09468ffd5d39ea74c9775dae57c34b45d91f3f7f753c18ed4", "leafIndex": 416, "merkleProof": [], "chainIndex": { "height": 200, "id": "bid:3c95abbf4ee22cf09468ffd5d39ea74c9775dae57c34b45d91f3f7f753c18ed4" } }, "leaf": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "proof": [] } } }, { "id": "h:66c8978661a560bfd4497e7b10f99b32edee6f5c64f89376b0502bc07172b59b", "index": { "height": 190, "id": "bid:f3e8fc9091217ba6d8c369342c980138a56e514cfc78bf4dc698cb5095c05902" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 335, "type": "v2ContractResolution", "data": { "parent": { "id": "h:b48817a1efc249109eb54202fcfb4b8e0a14368b98c0f9e6fe2519a8e1cbffd8", "leafIndex": 351, "merkleProof": [ "h:8509a73f82036fc4fd3ed652ff0f49db15ffaa2fef8d1010e9a2110026bb81b3", "h:cf179de3e7d390a4e85e784d7330daf1e925e47960bd0b06e68a1f00406b01da", "h:e46b612429e205b58843ad398b1f2dd31b11aebdd2aa0caac40d277905d4ca11", "h:a07408549e147d52e48b112a05bc632a19abc9f57fe2fea30efd945fdd01c49c", "h:56359fa49114d1ffdc14904cfdf9aff1e6f989ba8bc64d6f44218c73932688ec", "h:adffd0f07779af480239a099bcdbee317b3eb38796bbf43db061809d330379ad", "h:14815951f3861d371083dc342435d2017fe360d94b265fd6d9a8c6c4d6e2d048" ], "v2FileContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 179, "expirationHeight": 189, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 0, "renterSignature": "sig:a51f56c532f331b8ee9fd9bd3a76c89bed8643f2a60be2d820f168d19c7dae73a737c0eef532b992845af2a4a3bfd4993f01a4b66f42f87366c9e50afa2a820f", "hostSignature": "sig:a51f56c532f331b8ee9fd9bd3a76c89bed8643f2a60be2d820f168d19c7dae73a737c0eef532b992845af2a4a3bfd4993f01a4b66f42f87366c9e50afa2a820f" } }, "type": "expiration", "resolution": {} } }, { "id": "h:7f61115bf563af7e1a2e074bdd058d81f01dde4927b6bc6ef76a4a1ef1051501", "index": { "height": 204, "id": "bid:868a93d5bb1b411bc73e56db36b75bc1cfedc72002ea2e11a9a63af2d6724aa7" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 204, "type": "v2Transaction", "data": { "siafundInputs": [ { "parent": { "id": "h:15c39ea191db4d09d7ea2377a3f5420b282bf5652896052f0f1ab8e1e3091888", "leafIndex": 1, "merkleProof": [ "h:f511a305ffc38123784a15f622a4b3fa8fb33ee9f4819f520dbd74723be9b4fc", "h:ed462bec88bf447d34de9fa56f275577fd27d8d76f2614ee3763d058fe188dd6", "h:bf2f07cd074d36f55eb30ec3f7191da266e3f8f356d124f607a86fe0aef3073d", "h:e29d28b24d7f807c5d9d7c69e3c45fbfe67819a6c4204d2ee409bc01831f3c40", "h:839fef4a24b35fbcb287dd02368f0465cf9fb544655a96bebf54c74143408d8d", "h:f3ff212468e19ef921a614eabbc387e234e676ee1f1e4451d7abadd844a53b72", "h:e1f40a359b528d48f6e2c499688d8923a847234ec0e347605104d137372c0f0e", "h:c3a6bbde771ec2b73836e30eaebe4378f7c08ee9f01d1d78759ee3cdbc54dd26" ], "siafundOutput": { "value": 10000, "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "claimStart": "0" }, "claimAddress": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192", "satisfiedPolicy": { "policy": "uc(0,[0x999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40],1)", "signatures": [ "sig:fd245848196a12eccfedc34efb7c9c46fc8ba58eaf6e5d93aca6471f05c41745c1b2c1382d61547cef506472b34de9afdbeb3c95d77ca08990a1fe00a5b92407" ] } } ], "siafundOutputs": [ { "value": 10000, "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ], "minerFee": "0" } }, { "id": "h:26707ee955165411fbd2b0e444670fc2b728e9275fee71ca8cd0e3d4c7c98037", "index": { "height": 203, "id": "bid:6d37359564b7c36fb55c50f48aab4c2ae7545ce9b93ff1ab2f9511d1f20865b7" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 203, "type": "v2Transaction", "data": { "siacoinInputs": [ { "parent": { "id": "h:04960b29c57b0417a252f04dd164b4e53ea07aae6561e5534e808ca5f928d325", "leafIndex": 18446744073709551615, "merkleProof": [], "siacoinOutput": { "value": "10400000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 0 }, "satisfiedPolicy": { "policy": "uc(0,[0x999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40],1)", "signatures": [ "sig:4c7958ca899ac442c1b0f3d1ba2960d658920c408cca77f71e96626fd328a356141ffcb048d3dcf41713b447269ad02493f8640e4fbb327160f949582aac8a04" ] } } ], "fileContractResolutions": [ { "parent": { "id": "h:e773d79ce8ed3b5edf11572c3d56cc3908e6c0766479f09d21420df22ca416be", "leafIndex": 423, "merkleProof": [ "h:dec7cb8813aa21ebaec3da1d3a521903305079c382b2e37b1cc8e3c53e66c2db", "h:48476f9fcc42b15359119ee17a9bc3d33b98e54e589fe9baaf6ddab9d8f6f617", "h:14b049a779a996ef3c771669d30517798ef026c95ab5be146cab98dc3854e8cf" ], "v2FileContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 211, "expirationHeight": 221, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 0, "renterSignature": "sig:db264235ecadc89e63221e4e96347d560754d1f93939120c6d02c96e5207578e64067bd6a4313d9d84de019412d028ba98e182cde342f0cb4ffe1ec3f4783e03", "hostSignature": "sig:db264235ecadc89e63221e4e96347d560754d1f93939120c6d02c96e5207578e64067bd6a4313d9d84de019412d028ba98e182cde342f0cb4ffe1ec3f4783e03" } }, "type": "renewal", "resolution": { "finalRevision": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 211, "expirationHeight": 221, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 18446744073709551615, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "newContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 221, "expirationHeight": 231, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 0, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "renterRollover": "0", "hostRollover": "0", "renterSignature": "sig:984dea37a3897f6287fd04630e0878df5518e4ae95ff1cba7fa72a87b74cc85774306bba8ff563353b2d6bbca50e331f3dcf54eca3b36f14eb01dfdd7c07d00e", "hostSignature": "sig:984dea37a3897f6287fd04630e0878df5518e4ae95ff1cba7fa72a87b74cc85774306bba8ff563353b2d6bbca50e331f3dcf54eca3b36f14eb01dfdd7c07d00e" } } ], "minerFee": "0" } }, { "id": "h:d354cd57b55f6fae6926d2edc36978d5f03a3da3a96c93c9aace57a377efdf1e", "index": { "height": 203, "id": "bid:6d37359564b7c36fb55c50f48aab4c2ae7545ce9b93ff1ab2f9511d1f20865b7" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 203, "type": "v2Transaction", "data": { "siacoinInputs": [ { "parent": { "id": "h:6aa56534396cbf177a45c7edaf3eb0e9f85dd9fa7419b3818ecbd262e9384374", "leafIndex": 421, "merkleProof": [ "h:7d31531797157a7c9fa43c4a01dca0967a427ac19420d26b0259c39e0658dae7", "h:cab1fad8d5b9a116576db3c0d4e0334005d9ed562e9925e0513c4b2cfc94e9fe", "h:14b049a779a996ef3c771669d30517798ef026c95ab5be146cab98dc3854e8cf" ], "siacoinOutput": { "value": "256394172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 0 }, "satisfiedPolicy": { "policy": "uc(0,[0x999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40],1)", "signatures": [ "sig:1ac1f25080ec675a8992a2174d6c6f068e6660141caccec40c5e95e3ab725e1f0547d57f1715a216f5ac4ccc81786d836d8b6f99e9d936fef31e8565b96b320c" ] } } ], "siacoinOutputs": [ { "value": "10400000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, { "value": "245994172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ], "minerFee": "0" } }, { "id": "h:c342c0ed99ac9ee0155c17236bac9dbf93663e7ec25944727893b1faf03df30f", "index": { "height": 202, "id": "bid:0ef29ef4cd65042f22da4d70718522490177f3b3e73c525d964c48a46feb6dd7" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 202, "type": "v2Transaction", "data": { "siacoinInputs": [ { "parent": { "id": "h:877d5b90eb3feb8dedb5de169e0fd5cc1fb1d8663224d1006f03922e868e7e4a", "leafIndex": 395, "merkleProof": [ "h:f7338ec8ac8deee1d952c9134c58f77af74e592ca4921f4d93b4c91a6234ef30", "h:4a0b1a378f07efe0524e1d9b6448f48f616393e827b800fe8d48870cb8ed36aa", "h:efe8bf880371541af10816f960ce3172ab09d8e2885f9087828c764e1670d632", "h:abb482c19f1a14b21033b0b7b8304f685857a4f10d06fb20f172b253657e425b", "h:5dba3a456ed101f794a36e3396e375a88f8050e1a0b28bc2a15f105fbc44762a" ], "siacoinOutput": { "value": "266794172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 0 }, "satisfiedPolicy": { "policy": "uc(0,[0x999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40],1)", "signatures": [ "sig:0a1ccb440df8b484ff402d60819a44a9cd7043e522ad275d9aa3b76171375a104a1cb9f623e677eb58953fe81653c23a0d6ff64d88333b5cedfd4ee54e076600" ] } } ], "siacoinOutputs": [ { "value": "256394172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ], "fileContracts": [ { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 211, "expirationHeight": 221, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 0, "renterSignature": "sig:db264235ecadc89e63221e4e96347d560754d1f93939120c6d02c96e5207578e64067bd6a4313d9d84de019412d028ba98e182cde342f0cb4ffe1ec3f4783e03", "hostSignature": "sig:db264235ecadc89e63221e4e96347d560754d1f93939120c6d02c96e5207578e64067bd6a4313d9d84de019412d028ba98e182cde342f0cb4ffe1ec3f4783e03" } ], "minerFee": "0" } }, { "id": "h:fc3bf63551d537d56d15a02da5f2ecb5d8de069c41eadf34327bfd8f130bd671", "index": { "height": 191, "id": "bid:4b98626b4d3fb1a9df52918cb9f3812a67ed4b99adcc405a8c06c6d75602be00" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 191, "type": "v2Transaction", "data": { "siacoinInputs": [ { "parent": { "id": "h:ab6677558d6c344e449fe74677a4709ec689c9620bc73115c3526d04d7dabf2a", "leafIndex": 349, "merkleProof": [ "h:94a176d2c91e7c14eea13f834647222301819bb85ee274f62b7f958663fb5154", "h:812a840fffc713436ba107fc58dbecfaa574f513bf09e391a603df20affd228f", "h:e46b612429e205b58843ad398b1f2dd31b11aebdd2aa0caac40d277905d4ca11", "h:a07408549e147d52e48b112a05bc632a19abc9f57fe2fea30efd945fdd01c49c", "h:56359fa49114d1ffdc14904cfdf9aff1e6f989ba8bc64d6f44218c73932688ec", "h:adffd0f07779af480239a099bcdbee317b3eb38796bbf43db061809d330379ad", "h:14815951f3861d371083dc342435d2017fe360d94b265fd6d9a8c6c4d6e2d048" ], "siacoinOutput": { "value": "277194172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 0 }, "satisfiedPolicy": { "policy": "uc(0,[0x999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40],1)", "signatures": [ "sig:4689ce9f5673bc4d94f6e2da191cad0ca927d8a89b7f2431c428832ae612d37ad64e48c3deb416501dec438b52d704ca4c70ac2094d23c76d4514c85760b7401" ] } } ], "siacoinOutputs": [ { "value": "266794172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ], "fileContracts": [ { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 200, "expirationHeight": 210, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 0, "renterSignature": "sig:97385f262a2f8db3bd29b072b0ab7cc6dbe01843af09c9010675b3ec7db8a96dd199b3ede4df4ada81d41ca3b5ccb2ad6bfaa01071438ec6fce72e5f18bcd40a", "hostSignature": "sig:97385f262a2f8db3bd29b072b0ab7cc6dbe01843af09c9010675b3ec7db8a96dd199b3ede4df4ada81d41ca3b5ccb2ad6bfaa01071438ec6fce72e5f18bcd40a" } ], "minerFee": "0" } }, { "id": "h:2a1310fac16f79e12b518589b1ea5abfd3c8bd3da623727e5685caf8d6584cbc", "index": { "height": 170, "id": "bid:b3efdb29eb640b5d2e4bdd98a2a6f8c2837fdc54817ce229c522c36f6c75c576" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 170, "type": "v2Transaction", "data": { "siacoinInputs": [ { "parent": { "id": "h:ac413200b271cf769da46acb0898ed3406a43bb73f4f94659d91065f78dbecd0", "leafIndex": 346, "merkleProof": [ "h:b83ee7a234a6a278cca5348e794354613812946de9832e542780eae9ec636c17", "h:d1e4e9d91faa25f909cdd396ed1ee290770a69a12d666f7452465e2f32937657" ], "siacoinOutput": { "value": "287594172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 0 }, "satisfiedPolicy": { "policy": "uc(0,[0x999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40],1)", "signatures": [ "sig:fb809431f79a1b94e2de6efbd78c1dcc9945ba12fc367f7afb159e3ade8447e5431a3f9ad5c57d08a1643416af94a9530d5a01194dee54a0b209f1ed6eb45c02" ] } } ], "siacoinOutputs": [ { "value": "277194172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ], "fileContracts": [ { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 179, "expirationHeight": 189, "renterOutput": { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "hostPublicKey": "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40", "revisionNumber": 0, "renterSignature": "sig:a51f56c532f331b8ee9fd9bd3a76c89bed8643f2a60be2d820f168d19c7dae73a737c0eef532b992845af2a4a3bfd4993f01a4b66f42f87366c9e50afa2a820f", "hostSignature": "sig:a51f56c532f331b8ee9fd9bd3a76c89bed8643f2a60be2d820f168d19c7dae73a737c0eef532b992845af2a4a3bfd4993f01a4b66f42f87366c9e50afa2a820f" } ], "minerFee": "0" } }, { "id": "h:bae3d0b8a0934c54090ce546b6b56a079bbfc899900a2b891e44c887da695559", "index": { "height": 169, "id": "bid:747c7e17dd0d5397b9d91f8907750cc01d1cc2b4956008587214670a7fe4afb1" }, "timestamp": "2024-06-22T04:22:34Z", "maturityHeight": 169, "type": "v2Transaction", "data": { "siacoinInputs": [ { "parent": { "id": "h:409a5747120dbddb60bfca705142aeba7c8f940c1739484857667ef65a69379e", "leafIndex": 302, "merkleProof": [ "h:afe2663b5c0f9660c3e11b0a5c31c34a0971ddb5c7ec6d3b6f1fd21b9b70a145", "h:50ed0ed44529a24a0e05eb0d6d07477427950d05c0f235d1d15410a6426c650c", "h:ff1fe1a3ad6966b5fad3a5797a37c594812e92dee0a6d2d78945b2c6a75913b0", "h:f93db49cf7d3894ac3ff569ffdf1095f22cc381217ecda2478f27ce07b555ccf", "h:795ce8a6c379d73bac9f2f2dd55f7b497dd3b335ea9a3a712f10730569e1f90c", "h:10974c113780409ab783dc38ab3277cb07e7209604ec29c0ddd178b32d908ef8" ], "siacoinOutput": { "value": "288594172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 0 }, "satisfiedPolicy": { "policy": "uc(0,[0x999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40],1)", "signatures": [ "sig:d71087be0717a2d4510ef4fbd336957b3de02bec36f919edea1a03cbb92482a60c574e1f1da1397acf43f1348374b9153019ddac145e8b85f8c8cd233ffac30d" ] } } ], "siacoinOutputs": [ { "value": "1000000000000000000000000000", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, { "value": "287594172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ], "minerFee": "0" } }, { "id": "h:069984b5fb252f664fee13888b9e9f7ec310f0fab3285ddf07d5cb7063aad078", "index": { "height": 149, "id": "bid:8cebc0436ccb78df060c0c4a34395368f5648fc644a97b2476a23f09fb680028" }, "timestamp": "2024-06-22T04:22:33Z", "maturityHeight": 149, "type": "v1Transaction", "data": { "transaction": { "siacoinInputs": [ { "parentID": "scoid:b468b83452fac38807af7943337eeef4695c9371b761a0fd8e4433d782b80d72", "unlockConditions": { "timelock": 0, "publicKeys": [ "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40" ], "signaturesRequired": 1 } } ], "siacoinOutputs": [ { "value": "288594172736732570239334030000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ], "fileContracts": [ { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "windowStart": 158, "windowEnd": 168, "payout": "10405827263267429760665970000", "validProofOutputs": [ { "value": "10000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ], "missedProofOutputs": [ { "value": "10000000000000000000000000000", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" } ], "unlockHash": "h:0000000000000000000000000000000000000000000000000000000000000000", "revisionNumber": 0 } ], "signatures": [ { "parentID": "h:b468b83452fac38807af7943337eeef4695c9371b761a0fd8e4433d782b80d72", "publicKeyIndex": 0, "coveredFields": { "wholeTransaction": true }, "signature": "OwQ11DxbgVETVX2shCwG1Kc6NpEP3PovLJPlIq0MRsdlzA0rD1Flh98LcNQsqBLTkQZdZGDqVBsvAfELNVZVCw==" } ] }, "spentSiacoinElements": [ { "id": "h:b468b83452fac38807af7943337eeef4695c9371b761a0fd8e4433d782b80d72", "leafIndex": 299, "merkleProof": null, "siacoinOutput": { "value": "299000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 0 } ], "spentSiafundElements": [] } }, { "id": "h:203c1616574e92afe4081bcaf75d53a4f2f0979b8ed7ece8e3fecf5d3be5cfba", "index": { "height": 148, "id": "bid:39a14960577954ce50d02b9c3ec88c9e0a358cfdc11f9be690cdce816391ae8f" }, "timestamp": "2024-06-22T04:22:33Z", "maturityHeight": 148, "type": "v1Transaction", "data": { "transaction": { "siacoinInputs": [ { "parentID": "scoid:d33175c0dad7df6d047a4ea1507862f157a122e56b7025397bbe5a25de9f1898", "unlockConditions": { "timelock": 0, "publicKeys": [ "ed25519:999594db47cc792d408d26bb05f193b23ad020cb019113c0084a732673752a40" ], "signaturesRequired": 1 } } ], "siacoinOutputs": [ { "value": "1000000000000000000000000000", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, { "value": "299000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ], "signatures": [ { "parentID": "h:d33175c0dad7df6d047a4ea1507862f157a122e56b7025397bbe5a25de9f1898", "publicKeyIndex": 0, "coveredFields": { "wholeTransaction": true }, "signature": "GCXLgThVtjDutfAv6d34mIGUSRmm+vPX74DgafZIj7axOcnKylvwc2oCiaPboeOCjVd5Pgs1CP3GglfaxbihDw==" } ] }, "spentSiacoinElements": [ { "id": "h:d33175c0dad7df6d047a4ea1507862f157a122e56b7025397bbe5a25de9f1898", "leafIndex": 3, "merkleProof": null, "siacoinOutput": { "value": "300000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 145 } ], "spentSiafundElements": [] } }, { "id": "h:d33175c0dad7df6d047a4ea1507862f157a122e56b7025397bbe5a25de9f1898", "index": { "height": 1, "id": "bid:f3fcab43b1ac9588d503a2a986fc927f8b6571e9865ddf38c675008ab37b03a8" }, "timestamp": "2024-06-22T04:22:31Z", "maturityHeight": 146, "type": "miner", "data": { "siacoinElement": { "id": "h:d33175c0dad7df6d047a4ea1507862f157a122e56b7025397bbe5a25de9f1898", "leafIndex": 3, "merkleProof": null, "siacoinOutput": { "value": "300000000000000000000000000000", "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" }, "maturityHeight": 145 } } }, { "id": "h:1e390d3fdb4b462c8250cbdfea9f82a2f867a7cf850c14c08fb7fbb650a71486", "index": { "height": 0, "id": "bid:aefb375d7075d783f89130e858609c4da5c61882baca0764f56c925332ca911c" }, "timestamp": "2023-01-13T08:53:20Z", "maturityHeight": 0, "type": "v1Transaction", "data": { "transaction": { "siacoinOutputs": [ { "value": "1000000000000000000000000000000000000", "address": "addr:3d7f707d05f2e0ec7ccc9220ed7c8af3bc560fbee84d068c2cc28151d617899e1ee8bc069946" } ], "siafundOutputs": [ { "value": 10000, "address": "addr:b60ae577113147c4f68d2daa18dfba4af26a4a8f41a6e9d2a208c1afafe56997588cb25a5192" } ] }, "spentSiacoinElements": [], "spentSiafundElements": [] } } ]
Ran into an issue with the UI trying to spend an immature UTXO. I don't believe there's a reason to make the UI filter the UTXO list, so I changed the endpoints to only include matured UTXOs.
This adds a created bool
argument to the (Update).ForEach
methods, allowing callers to identify ephemeral elements by checking for created && spent
(or, in the case of file contracts, created && resolved
.
This is very useful for any callers who care about persistently tracking unspent outputs. Normally, the code for doing so looks like this:
cau.ForEachSiacoinElement(func(sce types.SiacoinElement, spent bool) { if spent { deleteUTXO(sce.ID) } else { insertUTXO(sce) } })
but this is subtly buggy: if the element was ephemeral, spent
will be true, so we'll try to delete it; but since it's ephemeral, it's not in the set, so there's nothing to delete! Whether or not this causes problems depends on how deleteUTXO
is implemented. Specifically, if you assert that an element must exist in order to be deleted, that assert will fail.
To avoid this, we need a way to detect whether an element is ephemeral. chain.DBStore
attempted to do this by checking sce.LeafIndex == types.EphemeralLeafIndex
. However, this doesn't work: ephemeral elements are assigned leaf indices just like regular outputs, so that condition is never satisfied! This eventually lead to a panic: ephemeral outputs within a reverted block would be added to the UTXO set (instead of being ignored), and if a future block references that same output, the DB gets confused and crashes.
Adding a created
flag seemed like the most direct of doing this. Another option would be to always skip the ephemeral elements in the ForEach
methods, and add a new method (or methods) for accessing only the ephemeral elements. This is attractive, since it doesn't break any existing code, and most callers want to skip ephemeral elements anyway. Ultimately, though, I decided against it; it pollutes the namespace, and it's one more thing you "just need to know" in order to use the API properly. Plus it makes the name "ForEach" a lie. Better to keep everything in one place.
- Minor tweak to slab health update to speed it up by making use of indices
- Make sure recording a host scans doesn't abort after 30 seconds when db is under heavy load
- Make sure recording price tables doesn't abort after 30 seconds when db is under heavy load
- Register new price tables in the background, unblocking operations faster and preventing the record operation from being cancelled after a timeout
The sector roots RPC used to return all sector roots, this was fixed in https://github.com/SiaFoundation/hostd/commit/e6dfc96fa0f8aab45ce0c87de0f87ffe477f83a5 and released in https://github.com/SiaFoundation/hostd/releases/tag/v1.0.2-beta.4 . We should ignore the error for old hosts.
Added a few more migrations since they are rather small.
This changes the policy to stringify and parse the unlock key in the v1 format specifier:hex key
. You can currently create a valid PolicyTypeUnlockCondition
using an UnlockKey
without an ed25519 algorithm, but can't reverse it. This doesn't cause any issues since the v2 validation checks will reject it, but it's slightly annoying that a valid serialization can't be reversed.
also: I could be wrong, but I believe v1 treated unlock conditions with unknown key algorithms as, effectively, anyone-can-spend. I'm not sure if it was ever actually seen on-chain, but after the require height any unlock condition that used a different algorithm will no longer be spendable.
Current:
sp := SpendPolicy{PolicyTypeUnlockConditions(UnlockConditions{ Timelock: 0, PublicKeys: []UnlockKey{ { Algorithm: NewSpecifier("blank"), Key: frand.Bytes(40), }, }, SignaturesRequired: 1, })} sp.String() // uc(0,[0x97ef92d4c07713b7a3a0e17000e59a9ef6e27402eaef0b5c9ae5cb0da50a78dd0a04e63d0e78e60d],1)
New:
sp := SpendPolicy{PolicyTypeUnlockConditions(UnlockConditions{ Timelock: 0, PublicKeys: []UnlockKey{ { Algorithm: NewSpecifier("blank"), Key: frand.Bytes(40), }, }, SignaturesRequired: 1, })} sp.String() // uc(0,[blank:97ef92d4c07713b7a3a0e17000e59a9ef6e27402eaef0b5c9ae5cb0da50a78dd0a04e63d0e78e60d],1)
areq
has an alert for unexpected response size (very old host), figured getting rid of the exact math is probably ok, reused maxMerkleProofResponseSize
to avoid duplicating the const
On gompa
rclone wouldn't work via localhost
anymore since HostBucketEnabled
was set to true
.
Problem is without this setting, access per proper domain (e.g. bucket.example.com
) doesn't work anymore but with it IPs and localhost
will be rewritten incorrectly.
The solution is to allow for configuring HostBucketBases
which is already supported by gofakes3
and allows for configuring only specific domains for which the bucket is extracted from the host
. That way localhost
and 127.0.0.1
still work but if specified bucket.example.com
will also work.
Forces the wallet and address event queries to use the proper index since the query planner did not want to select it automatically. This significantly improves performance for wallets with lots of events.
Bumps the all-dependencies group with 2 updates: go.sia.tech/core and go.sia.tech/coreutils.
Updates go.sia.tech/core
from 0.2.8-0.20240621235715-5054a28dc43d to 0.2.8
Commits
- See full diff in compare view
Updates go.sia.tech/coreutils
from 0.0.6 to 0.0.7
Commits
b818c37
Merge pull request #63 from SiaFoundation/dependabot/go_modules/go.sia.tech/c...c6f47c2
build(deps): bump go.sia.tech/core from 0.2.7 to 0.2.83012a5a
Merge pull request #62 from SiaFoundation/nate/siafund-events04b2041
wallet: combine common event structs, add siafund claim support- 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
The worker cache requires setting up the worker in a way we did not have to do before, namely registering webhooks with the bus so the worker gets notified when certain events take place on the bus. In single node setups or when you're on localhost everything works fine but in a distributed setup we are missing a way to define where the bus can reach the worker API. I came up with serviceAddress
for now but I've gone back and forth quite a bit. I like serviceAddress
because it ties in closely with docker services, I think we should call it something-address
to be consistent with the rest of the config.
I verified it using the following docker-compose
file:
version: "3.9"
services:
bus:
build:
context: .
dockerfile: ./docker/Dockerfile
container_name: bus
ports:
- "9981:9980"
environment:
- RENTERD_AUTOPILOT_ENABLED=false
- RENTERD_WORKER_ENABLED=false
- RENTERD_WORKER_REMOTE_ADDRS=http://worker:9980/api/worker
- RENTERD_WORKER_API_PASSWORD=test
- RENTERD_API_PASSWORD=test
- RENTERD_SEED=[seed here]
worker:
build:
context: .
dockerfile: ./docker/Dockerfile
container_name: worker
ports:
- "9982:9980"
environment:
- RENTERD_AUTOPILOT_ENABLED=false
- RENTERD_BUS_REMOTE_ADDR=http://bus:9980/api/bus
- RENTERD_BUS_API_PASSWORD=test
- RENTERD_WORKER_API_PASSWORD=test
- RENTERD_WORKER_SERVICE_ADDR=http://worker:9980
- RENTERD_API_PASSWORD=test
- RENTERD_SEED=[seed here]
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9980/api/worker || exit 1"]
interval: 30s
timeout: 10s
retries: 5
Bumps the all-dependencies group with 1 update: github.com/minio/minio-go/v7.
Updates github.com/minio/minio-go/v7
from 7.0.71 to 7.0.72
Release notes
Sourced from github.com/minio/minio-go/v7's releases.
Bugfix Release
What's Changed
- Keep all x-minio- headers as-is by
@klauspost
in minio/minio-go#1970Full Changelog: https://github.com/minio/minio-go/compare/v7.0.71...v7.0.72
Commits
0b004e3
add support for '*' in etag matchfa174cb
Keep all x-minio- headers as-is (#1970)b952833
Update version to next release- 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
@n8maninger noticed a flipped conditional in validateV2FileContracts
; after fixing it, I updated TestValidateV2Block
to update the ChainIndexElement proofs, but the test still failed -- with commitment hash mismatch
, which is a weird error. Further investigation revealed that V2Block.EncodeTo
was mutating the block. Specifically, it was nil
-ing out the V2StorageProof
history proof, which is why this wasn't caught earlier: since the test wasn't updating the proofs in the first place, they were always nil
, so EncodeTo
didn't affect them. Anyway, this cascade of failures has all been fixed now :P
- Fixed a few inaccuracies in the event data types. https://github.com/SiaFoundation/walletd/issues/141
fixes #451
Hello! I've been looking at this codebase for a couple of days now and saw a task I thought was approachable for a first PR. This change addresses the issue by modifying the following files:
ExplorerDatum.tsx
ValueCopyable.tsx
Block/index.ts
These are backward-compatible changes, as far as I know, given the optional nature of the props and how the text value in ValueCopyable is calculated.
Issue: ValueCopyable
, via ExplorerDatum
, displays the Block hash's first 12 characters, which are typically 0s, with a trailing ellipsis.
Solution: Display the last 12 characters instead, adding the ellipsis at the front.
How: Add optional maxLength and ellipsisDir props to ExplorerDatum
, pass them to ValueCopyable
(adding the optional ellipsisDir prop here), and rewrite the rendered text variable to take advantage of these props, if they exist. When ellipsisDir="left"
is passed to ExplorerDatum
, the last [maxLength] characters are displayed with an ellipsis in front. When maxLength={#}
is passed, it overwrites the default maxLength, displaying that many characters before or after the ellipsis. The default ellipsis direction is on the right, as it exists elsewhere today, and the maxLength prop in ValueCopyable
was already set up well to work without the prop. Now, anywhere ExplorerDatum
and ValueCopyable
or only ValueCopyable
are used, there are these optional properties to provide more granular display control.
Further considerations (optional):
- In
Block/index.ts
, I have only added the ellipsisDir prop set "left". I didn't extend maxLength, but one certainly could, now. I think there are some design questions to ponder in terms of display at < ~500px widths. - With the ellipsis on the left, allowing one to display the final characters of very long text, which I'm guessing are more important than the front characters, there aren't a lot of options out there, in terms of a straight CSS solution. Usually, they consist of hacks with non-typical elements. Other javascript solutions could revolve around logic based on
window.clientWidth
orwindow.getBoundingClientRect()
, but I've seen some of these solutions and, in my experience, they can be a bit unreliable (the latter function reading 0 for the first milliseconds, for example) and unwieldy in terms of working from hard numerical value breakpoints. - One solution to extend the displayed characters could be to flex-col
ExplorerDatum
when it reaches a certain breakpoint (depending on how long you want to go), and, at that point, you might want to centerValueCopyable
. Maybe not, though. It's not something I explorered. - I added this ellipsis left functionality in
Block/index.ts
for both the 'Block hash' and 'Miner payout address' values, only so they would match. You could certainly pull the index out of the map here and apply it only to the block hash. - I think the Tooltip component could be useful here, but it would require a more thorough refactor of
ExplorerDatum
which I felt might be beyond the scope of this request. You would probably want to move the logical operator render logic inside the return up above the return, perhaps in auseCallback
, and then optionally wrap the result of that logic in a Tooltip, if necessary. Figuring out the key for the value you want to display is a barrier. - Finally, I added props and imports to the end of things to keep a cleaner diff, but I would probably move maxLength and ellipsisDir next to each other in props and move an import like
useMemo
to the top. Just wanted to keep things simple to review.
Happy to edit anything to your satisfaction. Thanks!
- b13c3b51: Fixed an issue where renaming a file would throw an error.
- b13c3b51: Fixed an issue where the empty directory state was showing an empty bucket message.
- Wallet events have been updated to use the new types and data format. https://github.com/SiaFoundation/walletd/issues/134
- Fixed an issue where renaming a file would throw an error.
- Fixed an issue where the empty directory state was showing an empty bucket message.
- Added e2e tests for:
- can create directory
- delete directory
- drag and drop target uploads
- upload file within directory
- rename file
- delete a file
- re-upload same file
- navigate up and down directories
- delete bucket with contents, contents first, then bucket
EventV2ContractResolution
is missing the resolution type. Embeds V2FileContractResolution
to get the custom json encoding that includes the extra type
field.
{ "id": "h:0000000000000000000000000000000000000000000000000000000000000000", "index": { "height": 0, "id": "bid:0000000000000000000000000000000000000000000000000000000000000000" }, "timestamp": "0001-01-01T00:00:00Z", "maturityHeight": 0, "type": "v2ContractResolution", "data": { "parent": { "id": "h:0000000000000000000000000000000000000000000000000000000000000000", "leafIndex": 0, "merkleProof": null, "v2FileContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 0, "expirationHeight": 0, "renterOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "hostPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "revisionNumber": 0, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } }, "type": "expiration", "resolution": {} } }
{ "id": "h:0000000000000000000000000000000000000000000000000000000000000000", "index": { "height": 0, "id": "bid:0000000000000000000000000000000000000000000000000000000000000000" }, "timestamp": "0001-01-01T00:00:00Z", "maturityHeight": 0, "type": "v2ContractResolution", "data": { "parent": { "id": "h:0000000000000000000000000000000000000000000000000000000000000000", "leafIndex": 0, "merkleProof": null, "v2FileContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 0, "expirationHeight": 0, "renterOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "hostPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "revisionNumber": 0, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } }, "type": "finalization", "resolution": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 0, "expirationHeight": 0, "renterOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "hostPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "revisionNumber": 0, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } } }
{ "id": "h:0000000000000000000000000000000000000000000000000000000000000000", "index": { "height": 0, "id": "bid:0000000000000000000000000000000000000000000000000000000000000000" }, "timestamp": "0001-01-01T00:00:00Z", "maturityHeight": 0, "type": "v2ContractResolution", "data": { "parent": { "id": "h:0000000000000000000000000000000000000000000000000000000000000000", "leafIndex": 0, "merkleProof": null, "v2FileContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 0, "expirationHeight": 0, "renterOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "hostPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "revisionNumber": 0, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } }, "type": "renewal", "resolution": { "finalRevision": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 0, "expirationHeight": 0, "renterOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "hostPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "revisionNumber": 0, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "newContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 0, "expirationHeight": 0, "renterOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "hostPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "revisionNumber": 0, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "renterRollover": "0", "hostRollover": "0", "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } } }
{ "id": "h:0000000000000000000000000000000000000000000000000000000000000000", "index": { "height": 0, "id": "bid:0000000000000000000000000000000000000000000000000000000000000000" }, "timestamp": "0001-01-01T00:00:00Z", "maturityHeight": 0, "type": "v2ContractResolution", "data": { "parent": { "id": "h:0000000000000000000000000000000000000000000000000000000000000000", "leafIndex": 0, "merkleProof": null, "v2FileContract": { "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "proofHeight": 0, "expirationHeight": 0, "renterOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "hostOutput": { "value": "0", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" }, "missedHostValue": "0", "totalCollateral": "0", "renterPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "hostPublicKey": "ed25519:0000000000000000000000000000000000000000000000000000000000000000", "revisionNumber": 0, "renterSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "hostSignature": "sig:00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } }, "type": "storage proof", "resolution": { "proofIndex": { "id": "h:0000000000000000000000000000000000000000000000000000000000000000", "leafIndex": 0, "merkleProof": null, "chainIndex": { "height": 0, "id": "bid:0000000000000000000000000000000000000000000000000000000000000000" } }, "leaf": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "proof": null } } }
Not really a fix but better safe than sorry
Probably got lost in a merge somewhere, but we should definitely only broadcast the update when we're synced or otherwise a fresh start is horrible.
Bumps the all-dependencies group with 2 updates: go.sia.tech/core and go.sia.tech/coreutils.
Updates go.sia.tech/core
from 0.2.6 to 0.2.7
Commits
36ea9c7
Merge pull request #170 from SiaFoundation/generic-encoderf64b216
types: Add encoding_test.go261959d
types: Implement generic encoder functionseb021a0
Merge pull request #169 from SiaFoundation/dependabot/go_modules/all-dependen...86747f5
build(deps): bump the all-dependencies group with 2 updatesc0d52ee
group dependencies- See full diff in compare view
Updates go.sia.tech/coreutils
from 0.0.5 to 0.0.6
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
Refactors events to include the original transaction data. This lets external services verify the signatures and other transaction data. The event types and events almost match the ones from coreutils
with the addition of a relevant field
and a different v1 transaction event type so that inflow and outflow can be calculated instead of stored on the event.
Adds two new endpoints and ensures a consistent event structure for confirmed and unconfirmed events.
/api/wallet/:walletID/events/unconfirmed
returns any unconfirmed events related to a wallet/api/addresses/:addr/events/unconfirmed
returns any unconfirmed events related to an address
Event Types:
- miner
- foundation
- siafundClaim
- v1Transaction
- v1ContractResolution
- v2Transaction
- v2ContractResolution
Unconfirmed events will have an index of tip.index.height+1
and an empty id
{ "id": "h:731c8e75212fd850aef9f9b3f0a1373350743dea905966e0c819348e8fc226f1", "index": { "height": 75207, "id": "bid:0000000000000000000000000000000000000000000000000000000000000000" }, "timestamp": "2024-06-13T17:06:54.551676-07:00", "maturityHeight": 75207, "type": "v1Transaction", "data": { "raw": { "siacoinInputs": [ { "parentID": "scoid:e54b12c6a0f11ab3d89944c72df05e463e4e906b966906b266d92a65509d5053", "unlockConditions": { "timelock": 0, "publicKeys": [ "ed25519:0778d0e03c2f1b1e5e42d6f0f580d46587d992ad6381d8cae52b998463e0f633" ], "signaturesRequired": 1 } } ], "siacoinOutputs": [ { "value": "19999996070000000000000000000", "address": "addr:2a95add7cfc95b5c484a787c15b912e491876ca2f39982b62495049520acf798bf2e2cf6c326" }, { "value": "932206165193017337982514690933", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" } ], "minerFees": [ "36000000000000000000000" ], "signatures": [ { "parentID": "h:e54b12c6a0f11ab3d89944c72df05e463e4e906b966906b266d92a65509d5053", "publicKeyIndex": 0, "coveredFields": { "wholeTransaction": true }, "signature": "KzCjMr66ZhzqzyBIHCzewr+9nK5e1B+nSNXexv4j0KEvqb5Vs0laQWBYnn03yUxKForhkPgm7uFCKwAmklT8Cw==" } ] }, "spentSiacoinElements": [ { "id": "h:e54b12c6a0f11ab3d89944c72df05e463e4e906b966906b266d92a65509d5053", "leafIndex": 1423020, "merkleProof": [], "siacoinOutput": { "value": "952206197263017337982514690933", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" }, "maturityHeight": 0 } ], "spentSiafundElements": null }, "relevant": [ "addr:2a95add7cfc95b5c484a787c15b912e491876ca2f39982b62495049520acf798bf2e2cf6c326" ] }
{ "id": "h:084bf558939d7f60bf28be3176f31aea015ee892178d55a1892311be80c60ab4", "index": { "height": 62057, "id": "bid:000000251dbf2b6c8e9c6c53a4be4d5b7a2f70647a5aa98ba1d2d5f2a276bad6" }, "timestamp": "2024-03-26T19:51:58Z", "maturityHeight": 62202, "type": "miner", "data": { "siacoinElement": { "id": "h:084bf558939d7f60bf28be3176f31aea015ee892178d55a1892311be80c60ab4", "leafIndex": 305758, "merkleProof": null, "siacoinOutput": { "value": "2546749203167233134721992", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" }, "maturityHeight": 62201 } } }
{ "id": "h:084bf558939d7f60bf28be3176f31aea015ee892178d55a1892311be80c60ab4", "index": { "height": 62057, "id": "bid:000000251dbf2b6c8e9c6c53a4be4d5b7a2f70647a5aa98ba1d2d5f2a276bad6" }, "timestamp": "2024-03-26T19:51:58Z", "maturityHeight": 62202, "type": "v1ContractResolution", "data": { "fileContract": { "id": "h:0cc01878047a41b37db25bbe4a33be0063c20a172e89886bb15766221ad6aeb6", "leafIndex": 285511, "merkleProof": [],, "fileContract": { "filesize": 3221225472, "fileMerkleRoot": "h:538a633e94e0339fa3553c0ea2f37dba10cd81701cb22e352cacfd6eba4b42b6", "windowStart": 62056, "windowEnd": 62200, "payout": "4123337324945734946756928", "validProofOutputs": [ { "value": "1415777966105618149114936", "address": "addr:7838f42a584f7247d4bc9d85e985fa1bbc42a0c55e942cc31204be7f9959091ceb62e4824eee" }, { "value": "2546749203167233134721992", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" } ], "missedProofOutputs": [ { "value": "1415777966105618149114936", "address": "addr:7838f42a584f7247d4bc9d85e985fa1bbc42a0c55e942cc31204be7f9959091ceb62e4824eee" }, { "value": "2211527439234234844347336", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" }, { "value": "335221763932998290374656", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" } ], "unlockHash": "h:15d57447a0db498c01f1643d04ae626629fa79013dd68b11f7fa06e2ba6d4160", "revisionNumber": 873 } }, "siacoinElement": { "id": "h:084bf558939d7f60bf28be3176f31aea015ee892178d55a1892311be80c60ab4", "leafIndex": 305758, "merkleProof": null, "siacoinOutput": { "value": "2546749203167233134721992", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" }, "maturityHeight": 62201 }, "missed": false } }
The value should be calculated using event.siacoinElement.siacoinOutput.value
{ "id": "h:56dd0953f4a217fcb5bfae7927cbb7b08424cde3dcd1b47248fa09cb04e9f607", "index": { "height": 75191, "id": "bid:00000000d1cd5be659e21c9624cf58bcc1b69c08bee5ca85b8e5f5e5a9b94f86" }, "timestamp": "2024-06-13T21:01:25Z", "maturityHeight": 75191, "type": "v1Transaction", "data": { "raw": { "siacoinInputs": [ { "parentID": "scoid:cd6b3d83888ddca8a99b6860bf34b69f8346c7d6a7c8256a5e20492d755014e3", "unlockConditions": { "timelock": 0, "publicKeys": [ "ed25519:745229eecd616452608dfc4c136cbb712aae0221c505fd21344cbaff02408654" ], "signaturesRequired": 1 } }, ], "siacoinOutputs": [ { "value": "16603618098633177701291326236", "address": "addr:c6a179d96cc82f7814acd638c41250422205e8ed130c8d65481a3e15c30aaa195a8659547b0f" }, ], "fileContracts": [ { "filesize": 1623455694848, "fileMerkleRoot": "h:5a0b3f23bb7005c3f3cf0e391b1754ca2b78f4d0bd1a0c62c07552bdaa34af9b", "windowStart": 77206, "windowEnd": 77350, "payout": "6527511983870317298497483904", "validProofOutputs": [ { "value": "5294306986854930764839779264", "address": "addr:c6a179d96cc82f7814acd638c41250422205e8ed130c8d65481a3e15c30aaa195a8659547b0f" }, { "value": "978632029644444159016304640", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" } ], "missedProofOutputs": [ { "value": "5294306986854930764839779264", "address": "addr:c6a179d96cc82f7814acd638c41250422205e8ed130c8d65481a3e15c30aaa195a8659547b0f" }, { "value": "775417498778363966804983808", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" }, { "value": "203214530866080192211320832", "address": "addr:000000000000000000000000000000000000000000000000000000000000000089eb0d6a8a69" } ], "unlockHash": "h:54ecb4a10f7cffc1b89dcab6fef0887e6d83a86619faec9048fc27e36615d9a1", "revisionNumber": 0 } ], "fileContractRevisions": [ { "parentID": "fcid:5bda1c141daeb490689267736a8e9814f063009252b0da874b024f566b1213ec", "unlockConditions": { "timelock": 0, "publicKeys": [ "ed25519:367b5e02363065999e175326d77f93f9bcfff5437ba8b0348209b8b34cc85dea", "ed25519:04e326a61076ca088cf5a9ea93eefcbb1fea144575b0c5dc1d02f7a298d4b816" ], "signaturesRequired": 2 }, "filesize": 0, "fileMerkleRoot": "h:0000000000000000000000000000000000000000000000000000000000000000", "windowStart": 76198, "windowEnd": 76342, "payout": "340282366920938463463374607431768211455", "validProofOutputs": [ { "value": "5255684964149517545928885024", "address": "addr:c6a179d96cc82f7814acd638c41250422205e8ed130c8d65481a3e15c30aaa195a8659547b0f" }, { "value": "959591735219963162430677956", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" } ], "missedProofOutputs": [ { "value": "5255684964149517545928885024", "address": "addr:c6a179d96cc82f7814acd638c41250422205e8ed130c8d65481a3e15c30aaa195a8659547b0f" }, { "value": "959591735219963162430677956", "address": "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" } ], "unlockHash": "h:54ecb4a10f7cffc1b89dcab6fef0887e6d83a86619faec9048fc27e36615d9a1", "revisionNumber": 18446744073709552000 } ], "minerFees": [ "122880000000000000000000" ], "signatures": [ { "parentID": "h:5bda1c141daeb490689267736a8e9814f063009252b0da874b024f566b1213ec", "publicKeyIndex": 0, "coveredFields": { "fileContracts": [ 0 ], "fileContractRevisions": [ 0 ] }, "signature": "0cCUX6CpD1LwejSV4yuGGxgdPPpXfvh0n6IQWwMHBT1sBpSUJ2S4zbQ63+qhlWygHA00D0OGTsfevmjBib8BBw==" } ] }, "spentSiacoinElements": [ { "id": "h:cd6b3d83888ddca8a99b6860bf34b69f8346c7d6a7c8256a5e20492d755014e3", "leafIndex": 1422177, "merkleProof": null, "siacoinOutput": { "value": "1311143590699235482074695625", "address": "addr:c6a179d96cc82f7814acd638c41250422205e8ed130c8d65481a3e15c30aaa195a8659547b0f" }, "maturityHeight": 0 } ], "spentSiafundElements": [] } }
The outflow should be calculated by summing the relevant siacoinElements in event.spentSiacoinElements
. The inflow should be calculate by summing the relevant event.transaction.siacoinOutputs
. The value is inflow-outflow
- The pin max collateral switch is now visible in basic view mode. https://github.com/SiaFoundation/hostd/issues/417
Fuzz decoding of SpendPolicy which is probably has the most complicated decoding logic of all the types. I have been running for ~30 minutes and coverage has not flatlined yet.
Run with:
$ go test -fuzz FuzzSpendPolicy ./types
- The change address in the test was not for the same wallet
- Migrate walletd e2e tests from mocked API tests to live fixtures.
- Updated tests for creating wallet, recovering wallet, viewing txns, sending siacoin, generating addresses, rescanning.
Adds a command to configure a walletd
node similar to hostd
and renterd
.
Adds a new endpoint /api/events/:id
to get an event by its ID. This is primarily only useful when running in full index mode to lookup arbitrary transactions.
Adds EncodeSlice
, EncodeSliceCast
, EncodeSliceFn
, and their decoder counterparts, as well as Cast
methods for increased type safety. This makes most encoding methods more succinct, but the real motivation was that it allows us to centralized the handling of malicious slice lengths (see discussion on #166). I will grudgingly admit that generics solved a real problem here. 😝
I'm not crazy about the API; it would be nicer if we could somehow unify these three functions, and if we could ditch the Cast
methods. I explored replacing EncodeSliceFn
with a BasicEncodable
type (wrapping uint64
, bool
, etc.), but it was kinda gross, requiring a run-time type-switch on every encode call.
I ran one manual benchmark to see whether this had a big performance impact, and it looked ok. We should benchmark it more thoroughly though.
- Refined the volume deletion toast message to "Volume is now being permanently deleted". https://github.com/SiaFoundation/hostd/issues/409
- Fixed an issue where selecting a bucket context menu option would also navigate into the bucket. https://github.com/SiaFoundation/renterd/issues/1277
- Fixed an issue that broke some dialogs including the bucket policy and bucket delete dialogs. https://github.com/SiaFoundation/renterd/issues/1277
- Test hostd config behaviours: saving, re-announce warning, basic vs advanced view, auto vs manual max collateral.
- Test renterd config behaviours: saving, spending estimates, basic vs advanced view, auto vs manual allowance, system recommendations.
- renterd-e2e and hostd-e2e setup, fixtures, and configuration for running against daemon.
Increases the scanning batch size from 64 to 1000
Bumps the all-dependencies group with 2 updates: golang.org/x/crypto and golang.org/x/sys.
Updates golang.org/x/crypto
from 0.23.0 to 0.24.0
Commits
332fd65
go.mod: update golang.org/x dependencies0b431c7
x509roots/fallback: update bundle349231f
ssh: implement CryptoPublicKey on sk keys44c9b0f
ssh: allow server auth callbacks to send additional banners67b1361
sha3: reenable s390x assembly477a5b4
sha3: make APIs usable with zero allocations59b5a86
sha3: disable s390x assembly10f366e
sha3: simplify XOR functions- See full diff in compare view
Updates golang.org/x/sys
from 0.20.0 to 0.21.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
Bumps the all-dependencies group with 3 updates: go.sia.tech/core, go.sia.tech/coreutils and golang.org/x/term.
Updates go.sia.tech/core
from 0.2.5 to 0.2.6
Commits
c89664e
Merge pull request #166 from SiaFoundation/nate/clear-decoder-buffer5c81d31
ci: upgrade workflows76c8780
ci: fix golangci-lint, fix linter errors223630e
upgrade Gob6076d9
internal: drain channel when stopping timer (#165)9d2a157
consensus: lint suggestions9ec8e49
types: clear decoder buffer when read encounters an error31a155d
gateway: revert memory reuse- See full diff in compare view
Updates go.sia.tech/coreutils
from 0.0.5-0.20240531191724-1de8f76a2179 to 0.0.5
Commits
- See full diff in compare view
Updates golang.org/x/term
from 0.20.0 to 0.21.0
Commits
5f0bb72
go.mod: update golang.org/x dependencies- 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
Bumps golang.org/x/sys from 0.20.0 to 0.21.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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/crypto from 0.23.0 to 0.24.0.
Commits
332fd65
go.mod: update golang.org/x dependencies0b431c7
x509roots/fallback: update bundle349231f
ssh: implement CryptoPublicKey on sk keys44c9b0f
ssh: allow server auth callbacks to send additional banners67b1361
sha3: reenable s390x assembly477a5b4
sha3: make APIs usable with zero allocations59b5a86
sha3: disable s390x assembly10f366e
sha3: simplify XOR functions- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Fixes the following error on hostd
when renterd
trims sectors for large contracts:
failed to commit contract modifications: transaction failed (attempt 1): failed to trim sectors: failed to delete contract sector roots: failed to delete contract sector roots: too many SQL variables
renterd
's batch size when trimming is 500000 sectors while the SQLite query parameter limit is around 32000. This change is negligibly slower (~2 microseconds per sector)
Before
BenchmarkTrimSectors-10 189414 91529 ns/op 189414 sectors 8892 B/op 207 allocs/op
PASS
ok go.sia.tech/hostd/persist/sqlite 115.901s
After
BenchmarkTrimSectors-10 179298 94208 ns/op 179298 sectors 9768 B/op 252 allocs/op
PASS
ok go.sia.tech/hostd/persist/sqlite 102.815s
Ensures the decoder's buffer is cleared when Read
encounters an error. This should fix OOM issues we're seeing when syncing Mainnet. It may also fix https://github.com/SiaFoundation/hostd/issues/406, but I haven't looked deep into that one yet.
I'm not entirely sure that we need to do it per se in these three instances but in the context of the memory leaks we're seeing I think it's good practice to drain the timer channel when stopping them.
Arequipa is receiving large merkle proof responses from then hosts. Some 40MB+ in size. A slow host can't transmit that data within 60 seconds so I increased it to 5 minutes.
- Fixed an issue where the transaction information would not show in the dialog.
Something crashed Arequipa by returning a huge OutputLength
. 10MiB should be plenty.
(note: confirmed this fixes memory leak on my node)
Bumps github.com/cloudflare/cloudflare-go from 0.95.0 to 0.96.0.
Release notes
Sourced from github.com/cloudflare/cloudflare-go's releases.
v0.96.0
ENHANCEMENTS:
- access_application: Add Refresh Token, Custom Claims, and PKCE Without Client Secret support for OIDC SaaS configurations (#1981)
- ruleset: add support for action parameters
fonts
anddisable_rum
(#1832)DEPENDENCIES:
Changelog
Sourced from github.com/cloudflare/cloudflare-go's changelog.
0.96.0 (May 22nd, 2024)
ENHANCEMENTS:
- access_application: Add Refresh Token, Custom Claims, and PKCE Without Client Secret support for OIDC SaaS configurations (#1981)
- ruleset: add support for action parameters
fonts
anddisable_rum
(#1832)DEPENDENCIES:
Commits
d42a325
Update CHANGELOG.mdd721453
generate changelog4797123
update changelog entry1ac00e6
Merge pull request #1993 from cloudflare/dependabot/go_modules/github.com/has...ff5f7b2
Merge pull request #1992 from cloudflare/dependabot/github_actions/goreleaser...e6afc1b
Merge pull request #1991 from cloudflare/dependabot/github_actions/bflad/acti...0855862
add CHANGELOG for #1993cc1c6ba
build(deps): bump github.com/hashicorp/go-retryablehttp9646800
add CHANGELOG for #1992a3a9457
add CHANGELOG for #1991- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
While unlikely, if longQueryDuration
is set to 0
or Prepare
takes a long time,, Prepare
will not return an error.
Fixes an issue where sector migrations were not being counted towards the global write stats
Bumps go.sia.tech/web/walletd from 0.20.0 to 0.21.0.
Release notes
Sourced from go.sia.tech/web/walletd's releases.
walletd@0.21.0
Minor Changes
- 0a0bab05: The connect to peer dialog now supports IPv6 addresses. Closes SiaFoundation/web#624
Patch Changes
- e43d0d4e: Unconfirmed transactions rows now show their siacoin amount and fees. Closes SiaFoundation/walletd#123
Commits
56d6fe5
chore: release packagesb6505a6
fix: privacy settings host map, daemon version formatting0ba9281
feat: renterd health partial slabb8a5a3b
fix: renterd gpu, map colors73e7297
fix: alertsbcc1485
feat: renterd autopilot and not enough contract onboarding8da5666
fix: move connectivity/login off consensus8b69b77
feat: failed to migrate slab alert objects1ed477f
fix: renterd state, show build version2e77e9c
fix: hostd error alert- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
This went undetected because we haven't properly tested v2 storage proofs. Notably, we had a TestStorageProofRoot
test, but it was basically just a regression test -- it compared the output to whatever storageProofRoot
returned the first time we ran the test, so it didn't detect the faulty logic.
This PR adjusts the client-side validation for IPs.
- The connect to peer dialog now supports IPv6 addresses.
- The host blocklist dialog now supports adding IPv6 addresses.
Removes the eventData
interface and the custom json encoding in favor of a field on the Event struct. This does remove the limited guarantees we have about the data aligning with the type, but in practice its not a significant enough downside to justify the custom marshalling.
@alexfreska this will break the UI... Again.. Actually, it will not
{ "id": "h:a0f44763dbb2d2f95eec0f20f18bda75e7026297b6172f73449f3c3d67c2099c", "index": { "height": 997, "id": "bid:000000004d7b155547e163ea4933c28cf2171c43c0c02e50c04f6718f6af37f0" }, "timestamp": "2023-01-16T02:06:49Z", "maturityHeight": 997, "relevant": null, "type": "transaction", "data": { "siacoinInputs": [ { "id": "h:35b81e41f594d7faeb88bd8eaac2eaa68ce99fe1c8fe5f0cba8fafa65ab3a70e", "leafIndex": 0, "merkleProof": null, "siacoinOutput": { "value": "1000000000000000000000000000000000000", "address": "addr:3d7f707d05f2e0ec7ccc9220ed7c8af3bc560fbee84d068c2cc28151d617899e1ee8bc069946" }, "maturityHeight": 0 } ], "siacoinOutputs": [ { "id": "h:674c765a9708e24528549c2ecf9c6cc99501a1d4909b9aa18ec64f14bccfef41", "leafIndex": 2133, "merkleProof": null, "siacoinOutput": { "value": "100000000000022500000000000000000000", "address": "addr:70cd9249053dc5d575aa74385a730fbe16b1c7997ddadc37a5d9abc8dbf12017cbd4bb3c48da" }, "maturityHeight": 0 }, { "id": "h:4e4dc8a4b2147ba5783d803e645be14c54f1276f45a76c1cad060e41ded3733f", "leafIndex": 2134, "merkleProof": null, "siacoinOutput": { "value": "899999999999977500000000000000000000", "address": "addr:6f2ff24633525e854d0106031daf6cc666d5b8610ff9fbbd676a1d1a95903c794e054de7a634" }, "maturityHeight": 0 } ], "siafundInputs": [], "siafundOutputs": [], "fileContracts": null, "v2FileContracts": null, "hostAnnouncements": null, "fee": "0" } }
This PR expands test coverage in merkle to 95.1% and overall consensus coverage to 76.2% Now that we have the coverage for DecodeFrom and EncodeTo I'm planning to add a roundtrip later, assuming you find such tests to be valuable.
Adds support for a yaml configuration file similar to hostd
and renterd
.
directory: /etc/walletd autoOpenWebUI: true http: address: :9980 password: sia is cool consensus: network: mainnet gatewayAddress: :9981 bootstrap: false enableUPnP: false index: mode: partial # full, partial, none (full index will index the entire blockchain, partial will only index addresses that are registered in the wallet, none will treat the database as read-only and not index any new data) batchSize: 64 # max number of blocks to index at a time (increasing this will increase scan speed, but also increase memory and cpu usage) log: level: info # global log level stdout: enabled: true # enable logging to stdout level: debug # override the global log level for stdout enableANSI: false format: human # human or JSON file: enabled: true # enable logging to a file level: debug # override the global log level for the file path: /var/log/walletd.log format: json # human or JSON
This PR expands test coverage in policy.go
to 86.5% and overall types
coverage to 59.7%
Changes the read and write RPC to send internal errors and alert+log the actual error.
Fixes a small race introduced when the handling of tpool utxos changed
Bumps github.com/cloudflare/cloudflare-go from 0.94.0 to 0.95.0.
Release notes
Sourced from github.com/cloudflare/cloudflare-go's releases.
v0.95.0
ENHANCEMENTS:
- access_application: add support for
policies
array (#1956)- access_application: add support for
scim_config
(#1921)- access_policy: add support for reusable policies (#1956)
- dlp: add support for zt risk behavior configuration (#1887)
BUG FIXES:
- access_application: fix scim configuration authentication json marshalling (#1959)
DEPENDENCIES:
- deps: bumps dependabot/fetch-metadata from 2.0.0 to 2.1.0 (#1839)
- deps: bumps github.com/urfave/cli/v2 from 2.27.1 to 2.27.2 (#1861)
- deps: bumps golang.org/x/net from 0.24.0 to 0.25.0 (#1974)
- deps: bumps golangci/golangci-lint-action from 4 to 5 (#1845)
- deps: bumps golangci/golangci-lint-action from 5 to 6 (#1975)
Changelog
Sourced from github.com/cloudflare/cloudflare-go's changelog.
0.95.0 (May 8th, 2024)
ENHANCEMENTS:
- access_application: add support for
policies
array (#1956)- access_application: add support for
scim_config
(#1921)- access_policy: add support for reusable policies (#1956)
- dlp: add support for zt risk behavior configuration (#1887)
BUG FIXES:
- access_application: fix scim configuration authentication json marshalling (#1959)
DEPENDENCIES:
- deps: bumps dependabot/fetch-metadata from 2.0.0 to 2.1.0 (#1839)
- deps: bumps github.com/urfave/cli/v2 from 2.27.1 to 2.27.2 (#1861)
- deps: bumps golang.org/x/net from 0.24.0 to 0.25.0 (#1974)
- deps: bumps golangci/golangci-lint-action from 4 to 5 (#1845)
- deps: bumps golangci/golangci-lint-action from 5 to 6 (#1975)
Commits
4788db7
Update CHANGELOG.md3f615f5
update CHANGELOGd4a7f8d
Merge pull request #1975 from cloudflare/dependabot/github_actions/golangci/g...a1fda3a
Merge branch 'master' into dependabot/github_actions/golangci/golangci-lint-a...0026065
Merge pull request #1974 from cloudflare/dependabot/go_modules/golang.org/x/n...04c2ceb
add CHANGELOG for #1975e3ab1b2
build(deps): bump golangci/golangci-lint-action from 5 to 6be510c4
add CHANGELOG for #1974e35c25d
build(deps): bump golang.org/x/net from 0.24.0 to 0.25.0a8e30d4
Merge pull request #1959 from khiller-cf/master- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Accidentally left the default as full index mode
This PR updates the root cache in the ContractManager
when a contract gets renewed, essentially copying over the roots from existing to renewal. I'm keeping this as a DRAFT
@n8maninger because it's merely to illustrate the problem, the real fix is (likely) something else entirely and this will also need a thorough regression test. I don't mind taking a stab at it but I felt this is probably something that you will want to write the fix for yourself.
Context:
In renterd
we have a test called TestUploadDownloadSpending
that fails locally with AppendSector: proof verification failed
on the branch pj/subscription-api
. The reason it fails is because hostd
builds the proof of a recently renewed contract without sector roots. I sprinkled some logging in the host's contract manager and also the proof code in core and found that we seem to update the database just fine on renewal but the next time the contract updater fetches the roots from the store it returns 0 roots. Causing the host to try and build a proof where secRoots
is empty causing it to fail when verifying. I considered the possibility that something was removing those roots but I added panics in all delete
and trim
methods and those aren't hit during the test.
DEBUG PJ: host: contract manager: store renew contract fcid:d0ddaa094b8082ec760af191a241403846b89136ee1b6343f42bda1044a4e434 -> fcid:9fe0027ea0f4e28861fffcc86a06a93969e49acf98fa18d60de7919f89293c7e
DEBUG PJ: store: renew fcid:d0ddaa094b8082ec760af191a241403846b89136ee1b6343f42bda1044a4e434 -> fcid:9fe0027ea0f4e28861fffcc86a06a93969e49acf98fa18d60de7919f89293c7e updated 3 roots
DEBUG PJ: host: contract updater: fcid:9fe0027ea0f4e28861fffcc86a06a93969e49acf98fa18d60de7919f89293c7e append sector, new sector roots cnt 1
DEBUG PJ: host: contract updater: fcid:9fe0027ea0f4e28861fffcc86a06a93969e49acf98fa18d60de7919f89293c7e current sector roots cnt 1
DEBUG PJ: core0.2.3: BuildDiffProof
actions: [{Type:Append A:0 B:0 Data:[]}]
secRoots: []
treeHas: []
leafHas: []
DEBUG PJ: core0.2.3: VerifyDiffProof
actions: [{Type:Append A:0 B:0 Data:[]}]
numleav: 3
treeHas: []
leafHas: []
oldRoot: h:5927721564a242691a0ca9d58f810087ca838fe5205989417296cc6181939067
newRoot: h:c076a802cc2791cb30a710a1977e88e540abff86d091014117ed8e0321c43a66
appRoot: [h:c076a802cc2791cb30a710a1977e88e540abff86d091014117ed8e0321c43a66]
OK: false
Couple of things I find especially odd/interesting is that it passes on CI, so somehow this is a race condition, and also if we really consider the contract to be empty after renewal, even for a short period of time, this would wreak some serious havoc on production so it's probably somehow not that big of an issue or a really small window or something.
Adds "Full" and "None" indexing modes. The indexing mode can only be set once and cannot be changed since it changes how the state tree is stored.
"Partial" is the default. It only stores the state and events for addresses that are connected to a wallet.
"Full" will store the entire state of the blockchain regardless of addresses loaded into the wallet. It will also throw an error if the user attempts to trigger a scan with /wallet/scan
"None" will not process chain updates and treat the chain state as read-only. This isn't particularly useful now, but it will be nice when networked databases are supported.
- Fixed an issue where clearing some configuration fields would crash the app due to how recommendations were being calculated.
- The configuration recommendations now instruct the user to first fill all fields.
- Fixed an issue where the recommendations bar was overlapping notifications.
@peterjan, is this enough to fix the race condition, or do I need to change the deferred release to only be called when the transaction should be dropped?
Bumps go.sia.tech/core from 0.2.2 to 0.2.3.
Commits
f9d44a4
Merge pull request #148 from new0nebit/flourishfdfc700
Merge pull request #150 from SiaFoundation/surpass54775af
Merge pull request #152 from SiaFoundation/dependabot/go_modules/golang.org/x...71ccc09
build(deps): bump golang.org/x/crypto from 0.21.0 to 0.22.0c5cb20b
Improve SpendPolicy and SatisfiedPolicy tests based on feedback3b09dcb
consensus: Add (State).SufficientlyHeavierThanb038144
Add Test Coverage for SatisfiedPolicy and enhance SpendPolicy tests- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/term from 0.19.0 to 0.20.0.
Commits
46c790f
go.mod: update golang.org/x dependencies- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/term from 0.19.0 to 0.20.0.
Commits
46c790f
go.mod: update golang.org/x dependencies- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/sys from 0.19.0 to 0.20.0.
Commits
7d69d98
unix: extend support for z/OS7758090
cpu: add support for sve2 detection9a28524
windows: drop go version tags for unsupported versions27dc90b
unix: update to Linux kernel 6.4- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps go.sia.tech/core from 0.2.2 to 0.2.3.
Commits
f9d44a4
Merge pull request #148 from new0nebit/flourishfdfc700
Merge pull request #150 from SiaFoundation/surpass54775af
Merge pull request #152 from SiaFoundation/dependabot/go_modules/golang.org/x...71ccc09
build(deps): bump golang.org/x/crypto from 0.21.0 to 0.22.0c5cb20b
Improve SpendPolicy and SatisfiedPolicy tests based on feedback3b09dcb
consensus: Add (State).SufficientlyHeavierThanb038144
Add Test Coverage for SatisfiedPolicy and enhance SpendPolicy tests- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/sys from 0.19.0 to 0.20.0.
Commits
7d69d98
unix: extend support for z/OS7758090
cpu: add support for sve2 detection9a28524
windows: drop go version tags for unsupported versions27dc90b
unix: update to Linux kernel 6.4- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/crypto from 0.22.0 to 0.23.0.
Commits
905d78a
go.mod: update golang.org/x dependenciesebb717d
ssh: validate key type in SSH_MSG_USERAUTH_PK_OK response0da2a6a
openpgp: fix function name in comment5defcc1
sha3: fix Sum results for SHAKE functions on s390x- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
This changes the wallet.Event
JSON serialization to match the Go struct. Unfortunately, this will break the UI again @alexfreska.
- Adds the
maturityHeight
field. The UI should use this to distinguish between received-but-not-spendable payouts (maybe lower the opacity or add a "lock" icon). - Changes the
val
field todata
to match the rest ofwalletd
.
{ "id": "h:13271ead1070290c9cbe39ed7a15aa1107a27029479858ee9ab2fcc237ed4aa0", "timestamp": "2024-05-01T11:35:03Z", "index": { "height": 68278, "id": "bid:000000009db92b8834aed7809ebe3ff0184e632e8333bba3802de8cd10d2fc86" }, "maturityHeight": 68423, "relevant": [ "addr:11d68c52e67a800d0ca99867e410cfa9c0c3f5bc1726aa90e88f40b7ad0825c91841904dae10" ], "type": "contract payout", "data": {...} }
- Moved the pinned currency change threshold to advanced mode settings.
- Adds a walletd-js library.
import { Walletd } from '@siafoundation/walletd-js' const walletd = Walletd({ api: 'http://localhost:9980/api', password: 'password1337', }) const events = await walletd.walletEvents({ params: { id: 'wallet-1', limit: 10, offset: 0, }, }) const peers = await walletd.syncerPeers() console.log(events.data, peers.data)
- Adds a hostd-js library.
import { Hostd } from '@siafoundation/hostd-js' export async function example() { const hostd = Hostd({ api: 'http://localhost:9980/api', password: 'password1337', }) const state = await hostd.stateHost() const volumes = await hostd.volumes() console.log(state.data, volumes.data) }
2 line change to close statements that were not closed
I started writing this code during the last hackathon for fun, practicing writing test cases. But I didn't finish it because I had to switch to the main task regarding consensus coverage. I felt bad for wipe out a work that had been done, so I ended up finishing the code and also making some changes to it. Initially, I was only aiming to cover the SatisfiedPolicy
but got carried away and started covering the PolicyTypeAbove
and PolicyTypePublicKey
, completely overlooking the fact that you had already done this 😅 Anyway, here it is. I hope that this alternative approach and the additional scenarios will prove valuable to you 🙏
Bumps golang.org/x/sys from 0.18.0 to 0.19.0.
Commits
cabba82
windows: use uint32 for serial comm flags for consistency1a50d97
windows: add serial comm functions95f07ec
x/sys/windows: add func windows.DisconnectNamedPipe(handle Handle) (err error)4be02d3
unix: expose mmap calls on z/OS- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/crypto from 0.21.0 to 0.22.0.
Commits
d042a39
go.mod: update golang.org/x dependenciesb92bf94
ssh: respect MaxAuthTries also for "none" auth attempts6f79b5a
ssh: add server side multi-step authentication8d0d405
x/crypto/chacha20: cleanup chacha_ppc64le.sb91329d
all: remove redundant words in comments and fix some typos- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Before
goos: linux
goarch: amd64
pkg: go.sia.tech/core/internal/blake2b
cpu: AMD EPYC 7B13 64-Core Processor
BenchmarkBLAKE2b/SumLeaves-128 4167430 290.8 ns/op 880.38 MB/s 0 B/op 0 allocs/op
BenchmarkBLAKE2b/SumNodes-128 3793945 285.3 ns/op 897.44 MB/s 0 B/op 0 allocs/op
PASS
ok go.sia.tech/core/internal/blake2b 4.610s
After
goos: linux
goarch: amd64
pkg: go.sia.tech/core/internal/blake2b
cpu: AMD EPYC 7B13 64-Core Processor
BenchmarkBLAKE2b/SumLeaves-128 6697410 176.7 ns/op 1448.80 MB/s 0 B/op 0 allocs/op
BenchmarkBLAKE2b/SumNodes-128 5853004 181.6 ns/op 1409.40 MB/s 0 B/op 0 allocs/op
PASS
ok go.sia.tech/core/internal/blake2b 4.376s
Old: "~2.529 mS"
New: "2.529378333356156158367 mS"
We discussed removing the SI units as well, and using SC exclusively (i.e. the example above would be 2.529378333356156158367 mS
), but there was less consensus on that.
Since String
is now exact, ExactString
has been removed; if you want raw Hastings values, you can use Big
or fmt.Sprintf("%d", c)
. If you want a rounded value, you can use standard approaches to round the float64
returned by Siacoins
.
Bumps golang.org/x/sys from 0.5.0 to 0.18.0.
Commits
360f961
unix: add API for fsconfig system call7ff74af
unix: drop go version tags for unsupported versions6b4eab5
unix: suppress ENOMEM errors from sysctl's implementing Uname(uname *Utsname)...2f2cc5d
unix: update IFLA and NETKIT constants with Linux kernel 6.7914b96c
windows: support ill-formed UTF-16 in UTF16PtrToString511ec84
Revert "windows: support nil done parameter in ReadFile and WriteFile"628365d
windows: support nil done parameter in ReadFile and WriteFilebef1bd8
unix: move mksyscall regexp to package level variables5710a32
unix/linux: update Linux kernel to 6.7b3ce6a3
windows: build env_windows_test.go only go Go 1.21 and above- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/crypto from 0.0.0-20220507011949-2cf3adece122 to 0.21.0.
Commits
- 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 this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
477,093 block height
85,407 online hosts
528 active hosts
7.69 PB total storage
1.54 PB used storage
3,219 M total registry
45 M used registry
20,995 commits
71 contributors
470 forks
43 releases