From 05bb68f07d40adf8885670d7f9a6a36f4643cb94 Mon Sep 17 00:00:00 2001 From: Phi Date: Fri, 22 Jul 2022 13:09:21 +0200 Subject: [PATCH 1/4] bump version to v1.17.0-rc4 bump version to v1.17.0-rc4 --- build/openrpc/full.json.gz | Bin 28036 -> 28036 bytes build/openrpc/gateway.json.gz | Bin 4893 -> 4893 bytes build/openrpc/miner.json.gz | Bin 13875 -> 13875 bytes build/openrpc/worker.json.gz | Bin 4764 -> 4764 bytes build/version.go | 2 +- documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 2 +- documentation/en/cli-lotus.md | 2 +- 8 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 8a085654877db1949c2ac3e7bd7378ae12dcc71e..b07d5b7a32e11a78873e52727b155b948d3e1577 100644 GIT binary patch literal 28036 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 diff --git a/build/openrpc/gateway.json.gz b/build/openrpc/gateway.json.gz index 3c523b7e1d23cf55fb0ed576e0de43c1c06948b7..a5ee333336c36b8f2c70aec147d319b4939b67be 100644 GIT binary patch delta 4012 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 S+y4as0RR88+CFb>@c;nC?DAOv delta 4012 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 SxBm+O0RR7!RnoF;@c;mei|xe# diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index a52ea990c9be4efcd3279e63df26b0f1b61aa772..f26d842fa9dd7380b3e7ccfc63a9d6416afc2af1 100644 GIT binary patch delta 21 dcmdm-vpHu%C*$#rT? Date: Fri, 22 Jul 2022 13:28:40 +0200 Subject: [PATCH 2/4] Update CHANGELOG.md Updates CHANGELOG.md with the two new PRs 9044 and 9055 --- CHANGELOG.md | 577 ++++++++++----------------------------------------- 1 file changed, 108 insertions(+), 469 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f11ddd583..8bd084505 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,479 +1,119 @@ # Lotus changelog +# v1.17.0-rc4 / 2022-07-22 -# v1.17.0-rc3 / 2022-07-13 +This is the fourth release candidate of the OPTIONAL release 1.17.0. This feature release introduces a lot of new sealing and scheduler improvements, and many other functionalities and bug fixes. -This is the third release candidate of the OPTIONAL release 1.17.0. +## New features -Note that: due to circumstances, we have decided to reset the code freeze to the latest master for this release and restart the testing flow. This also means we are skipping the feature release of June, and have everthing in the July feature release. +- feat: worker: lotus-worker run --no-default ([filecoin-project/lotus#8672](https://github.com/filecoin-project/lotus/pull/8672)) + - Makes it very easy to spin up workers that make the compute tasks opt-in, instead of the default opt-out. Also makes it very easy to create storage-only workers. [Link to the documentation](https://lotus.filecoin.io/storage-providers/seal-workers/seal-workers/#run-the-worker) +- feat: sched: Per worker concurrent task count limits ([filecoin-project/lotus#8725](https://github.com/filecoin-project/lotus/pull/8725)) + - Set the maximum number of tasks running it parallel on workers by exporting env-variables: `[short task type]_[sector size]_MAX_CONCURRENT=[limit]`. [Link to documentation](https://lotus.filecoin.io/storage-providers/seal-workers/seal-workers/#limit-tasks-run-in-parallel) +- feat: sched: Finalize* move selectors ([filecoin-project/lotus#8710](https://github.com/filecoin-project/lotus/pull/8710)) + - Allows you to force all Finalize tasks to run on workers with local access to both long-term storage and the sealing path containing the sector. +- feat: sched: Add scheduler interfaces, configurable assigner ([filecoin-project/lotus#8700](https://github.com/filecoin-project/lotus/pull/8700)) + - Introduce a new simpler worker assigning logic which will attempt to assign tasks to as many workers as possible and ignore worker utilization. [Link to documentation](https://lotus.filecoin.io/storage-providers/advanced-configurations/sealing/#worker-assigning-logic) +- feat: bench: simple sealing operations commands ([filecoin-project/lotus#8373](https://github.com/filecoin-project/lotus/pull/8373)) + - Allows you to only test the performance of a single task. [Read the documentation](https://lotus.filecoin.io/storage-providers/operate/benchmarks/#single-task-benchmark). +- feat: miner cli: sealing data-cid command ([filecoin-project/lotus#8715](https://github.com/filecoin-project/lotus/pull/8715)) + - Makes it possible to compute data CIDs on lotus workers. +- feat: precommits info ([filecoin-project/lotus#8696](https://github.com/filecoin-project/lotus/pull/8696)) + - Check the on-chain precommit info with the `lotus-miner sectors precommits` command. +- feat: dagstore: add dagstore register-shard command ([filecoin-project/lotus#8645](https://github.com/filecoin-project/lotus/pull/8645)) + - If you have broken indexes in your market’s datastore, you can try to recover it by using `lotus-miner dagstore register-shard`. [Link to documentation](https://lotus.filecoin.io/kb/dagstore-register/) +- feat: Implement cli command for compactPartitions ([filecoin-project/lotus#8637](https://github.com/filecoin-project/lotus/pull/8637)) + - Remove dead sectors from partitions and reduce the number of partitions used if possible with the `lotus-miner sectors compact-partitions`command. [Link to documentation](https://lotus.filecoin.io/storage-providers/operate/daily-chores/#compacting-partitions) +- feat: recovery: Config for maximum partition count per message ([filecoin-project/lotus#8986](https://github.com/filecoin-project/lotus/pull/8986) + - Adds config for setting the maximum amount of partitions to declare in a DeclareFaultsRecovered message [Link to documentation](https://lotus.filecoin.io/storage-providers/seal-workers/post-workers/#multiple-partitions) +- feat: wdpost: Config for maximum partition count per message ([filecoin-project/lotus#8982](https://github.com/filecoin-project/lotus/pull/8982)) + - Adds config for setting the maximum amount of partitions to prove in a SubmitWindowPoSt message [Link to documentation](https://lotus.filecoin.io/storage-providers/seal-workers/post-workers/#multiple-partitions) +- feat: sealer: Config for disabling builtin PoSt / PoSt pre-checks ([filecoin-project/lotus#8959](https://github.com/filecoin-project/lotus/pull/8959)) + - Adds the ability to fully disable PoSt tasks on the `lotus-miner` and disabling windowPoSt pre-checks. [Link to documentation](https://lotus.filecoin.io/storage-providers/advanced-configurations/workers/#post-computations) + +## Improvements -Detailed Changelog will be added later! +- feat: wdpost: Ignore faults in lotus-miner proving compute window-post ([filecoin-project/lotus#8737](https://github.com/filecoin-project/lotus/pull/8737)) +- feat: cli: Nicer net stat ([filecoin-project/lotus#8797](https://github.com/filecoin-project/lotus/pull/8797)) +- feat: networking: add healthz and livez endpoints ([filecoin-project/lotus#8692](https://github.com/filecoin-project/lotus/pull/8692)) +- feat: Snap Deals full unseal ([filecoin-project/lotus#8478](https://github.com/filecoin-project/lotus/pull/8478)) +- feat: cli: Hide sector nums in 'proving deadline' by default ([filecoin-project/lotus#8952](https://github.com/filecoin-project/lotus/pull/8952)) +- feat: networking: disconnect cmd ([filecoin-project/lotus#8955](https://github.com/filecoin-project/lotus/pull/8955)) +- feat: dagstore: Add DestroyShard() in dagstore wrapper ([filecoin-project/lotus#9010](https://github.com/filecoin-project/lotus/pull/9010)) -- github.com/filecoin-project/lotus: - - build: merge: release v1.17.0 to master ([filecoin-project/lotus#9017](https://github.com/filecoin-project/lotus/pull/9017)) - - change 1475 bootstrap peer ([filecoin-project/lotus#9008](https://github.com/filecoin-project/lotus/pull/9008)) - - feat: dagstore: Add DestroyShard() in dagstore wrapper ([filecoin-project/lotus#9010](https://github.com/filecoin-project/lotus/pull/9010)) - - build: merge: v1.16.1 to master ([filecoin-project/lotus#9014](https://github.com/filecoin-project/lotus/pull/9014)) - - chore: market: Upgrade to `go-car` `2.4.1` ([filecoin-project/lotus#8985](https://github.com/filecoin-project/lotus/pull/8985)) - - fix: Delegate storage auth on market nodes ([filecoin-project/lotus#8978](https://github.com/filecoin-project/lotus/pull/8978)) - - Docs: readme: use proper hwloc dependency for Fedora ([filecoin-project/lotus#8999](https://github.com/filecoin-project/lotus/pull/8999)) - - chore: stop using the deprecated github.com/libp2p/go-libp2p-yamux (#8998) ([filecoin-project/lotus#8998](https://github.com/filecoin-project/lotus/pull/8998)) - - chore: update and fix libp2p ([filecoin-project/lotus#8996](https://github.com/filecoin-project/lotus/pull/8996)) - - fix incorrect usage of peer.IDFromString (should be peer.Decode) ([filecoin-project/lotus#8993](https://github.com/filecoin-project/lotus/pull/8993)) - - remove mock file - - feat: recovery: Config for maximum partition count per message ([filecoin-project/lotus#8986](https://github.com/filecoin-project/lotus/pull/8986)) - - feat: wdpost: Config for maximum partition count per message ([filecoin-project/lotus#8982](https://github.com/filecoin-project/lotus/pull/8982)) - - deps: update go-fil-markets to v1.23.0 ([filecoin-project/lotus#8976](https://github.com/filecoin-project/lotus/pull/8976)) - - feat: msig cli: Check for existing signers in add-propose ([filecoin-project/lotus#8833](https://github.com/filecoin-project/lotus/pull/8833)) - - feat: shed: migrate-nv16 ([filecoin-project/lotus#8942](https://github.com/filecoin-project/lotus/pull/8942)) - - fix: lotus-stats: actor code string ([filecoin-project/lotus#8977](https://github.com/filecoin-project/lotus/pull/8977)) - - sealer: Config for disabling builtin PoSt / PoSt pre-checks ([filecoin-project/lotus#8959](https://github.com/filecoin-project/lotus/pull/8959)) - - feat: cli: Hide sector nums in 'proving deadline' by default ([filecoin-project/lotus#8952](https://github.com/filecoin-project/lotus/pull/8952)) - - ux: print absolute time for proving period start in proving cli ([filecoin-project/lotus#8954](https://github.com/filecoin-project/lotus/pull/8954)) - - ux: cli: add compute description ([filecoin-project/lotus#8963](https://github.com/filecoin-project/lotus/pull/8963)) - - chore:networking:disconnect cmd ([filecoin-project/lotus#8955](https://github.com/filecoin-project/lotus/pull/8955)) - - go mod tidy - - Update deps - - chore: state: clarify state tree versioning in comment ([filecoin-project/lotus#8947](https://github.com/filecoin-project/lotus/pull/8947)) - - Feat: api: Api call to get actor cids works for versions < 16 ([filecoin-project/lotus#8941](https://github.com/filecoin-project/lotus/pull/8941)) - - chore: market: upgrade index-provider and related dependencies ([filecoin-project/lotus#8945](https://github.com/filecoin-project/lotus/pull/8945)) - - PoC: FVM Debug Dual Execution ([filecoin-project/lotus#8841](https://github.com/filecoin-project/lotus/pull/8841)) - - fix appimage build ([filecoin-project/lotus#8931](https://github.com/filecoin-project/lotus/pull/8931)) - - build: chore: releases back to master ([filecoin-project/lotus#8929](https://github.com/filecoin-project/lotus/pull/8929)) - - fix: readme: Update install instructions link ([filecoin-project/lotus#8460](https://github.com/filecoin-project/lotus/pull/8460)) - - docs: update ./documentation/en/README.md ([filecoin-project/lotus#8887](https://github.com/filecoin-project/lotus/pull/8887)) - - deps: upgrade go-fil-markets to v1.22.0 ([filecoin-project/lotus#8905](https://github.com/filecoin-project/lotus/pull/8905)) - - Fix: cli: Break out of retrieval if provider cancels ([filecoin-project/lotus#8912](https://github.com/filecoin-project/lotus/pull/8912)) - - feat: shed: print out actor code CIDs in manifest cid checker ([filecoin-project/lotus#8911](https://github.com/filecoin-project/lotus/pull/8911)) - - Make cli deal command get Block Delay specific to build ([filecoin-project/lotus#8896](https://github.com/filecoin-project/lotus/pull/8896)) - - fix: fvm: make exectraces match legacyVM some more ([filecoin-project/lotus#8889](https://github.com/filecoin-project/lotus/pull/8889)) - - Add a reentrant multisig test ([filecoin-project/lotus#8816](https://github.com/filecoin-project/lotus/pull/8816)) - - chore: deps: Update to go-state-types v0.1.10 ([filecoin-project/lotus#8883](https://github.com/filecoin-project/lotus/pull/8883)) - - fix: deps: Update butterfly artifacts ([filecoin-project/lotus#8881](https://github.com/filecoin-project/lotus/pull/8881)) - - chore: sealing pipeline: Remove adapter code (storage refactors part 2) ([filecoin-project/lotus#8871](https://github.com/filecoin-project/lotus/pull/8871)) - - build: deps: add uninstall make target ([filecoin-project/lotus#8814](https://github.com/filecoin-project/lotus/pull/8814)) - - fix: ux: Check for client deal addrs on-chain ([filecoin-project/lotus#8830](https://github.com/filecoin-project/lotus/pull/8830)) - - update release template ([filecoin-project/lotus#7715](https://github.com/filecoin-project/lotus/pull/7715)) - - build: bump master version to v1.17.1-dev ([filecoin-project/lotus#8875](https://github.com/filecoin-project/lotus/pull/8875)) - - chore: backport: v1.16.0 bundle to master ([filecoin-project/lotus#8872](https://github.com/filecoin-project/lotus/pull/8872)) - - feat: update go-fil-markets to v1.21.0 ([filecoin-project/lotus#8856](https://github.com/filecoin-project/lotus/pull/8856)) - - chore: storage refactors part 1 ([filecoin-project/lotus#8858](https://github.com/filecoin-project/lotus/pull/8858)) - - feat: shed: report the "user version" ([filecoin-project/lotus#8864](https://github.com/filecoin-project/lotus/pull/8864)) - - chore: fix imports conflict ([filecoin-project/lotus#8863](https://github.com/filecoin-project/lotus/pull/8863)) - - chore: Fix imports ([filecoin-project/lotus#8859](https://github.com/filecoin-project/lotus/pull/8859)) - - chore: backport: release v1.16.0 back to master ([filecoin-project/lotus#8855](https://github.com/filecoin-project/lotus/pull/8855)) - - fix: format error log ([filecoin-project/lotus#8854](https://github.com/filecoin-project/lotus/pull/8854)) - - fix: build: really make macos compatible (#8853) ([filecoin-project/lotus#8853](https://github.com/filecoin-project/lotus/pull/8853)) - - fix: build: fix pack script and add calibrationnet to bundle ([filecoin-project/lotus#8852](https://github.com/filecoin-project/lotus/pull/8852)) - - Add new proofs version type ([filecoin-project/lotus#8848](https://github.com/filecoin-project/lotus/pull/8848)) - - feat: refactor: actor bundling system (#8838) ([filecoin-project/lotus#8838](https://github.com/filecoin-project/lotus/pull/8838)) - - refactor: remove old BlockSyncProtocolID ([filecoin-project/lotus#8820](https://github.com/filecoin-project/lotus/pull/8820)) - - chore: deps: Update to go-address v1.0.0 ([filecoin-project/lotus#8826](https://github.com/filecoin-project/lotus/pull/8826)) - - Revert "deps: update go-libp2p-pubsub to v0.7.0" ([filecoin-project/lotus#8842](https://github.com/filecoin-project/lotus/pull/8842)) - - Feat: migration: Implement function to migrate actors with only code changes ([filecoin-project/lotus#8843](https://github.com/filecoin-project/lotus/pull/8843)) - - feat: Add rate limiting to the lotus gateway ([filecoin-project/lotus#8517](https://github.com/filecoin-project/lotus/pull/8517)) - - gofmt - - fix: build: fix 2k build params ([filecoin-project/lotus#8835](https://github.com/filecoin-project/lotus/pull/8835)) - - Merge nv16 changes into master ([filecoin-project/lotus#8810](https://github.com/filecoin-project/lotus/pull/8810)) - - chore: improve error message when maxPrice is too low ([filecoin-project/lotus#8818](https://github.com/filecoin-project/lotus/pull/8818)) - - Fix: PaychGetRestartAfterAddFundsMsg may stuck in forever waiting ([filecoin-project/lotus#8829](https://github.com/filecoin-project/lotus/pull/8829)) - - fix: paych: Print "waiting for confirmation.." ([filecoin-project/lotus#8823](https://github.com/filecoin-project/lotus/pull/8823)) - - feat: conformance & tvx: support ReportConsensusFault messages ([filecoin-project/lotus#8302](https://github.com/filecoin-project/lotus/pull/8302)) - - fix: build: genesis miner network version ([filecoin-project/lotus#8756](https://github.com/filecoin-project/lotus/pull/8756)) - - deps: update go-libp2p@v0.19.4 ([filecoin-project/lotus#8799](https://github.com/filecoin-project/lotus/pull/8799)) - - feat: lotus-shed get remote peer hello message ([filecoin-project/lotus#8787](https://github.com/filecoin-project/lotus/pull/8787)) - - feat: cli: Nicer net stat ([filecoin-project/lotus#8797](https://github.com/filecoin-project/lotus/pull/8797)) - - fix: bench: consistency in description ([filecoin-project/lotus#8777](https://github.com/filecoin-project/lotus/pull/8777)) - - deps: update go-libp2p-pubsub to v0.7.0 ([filecoin-project/lotus#8770](https://github.com/filecoin-project/lotus/pull/8770)) - - feat: only enable rcmgr by default in full nodes ([filecoin-project/lotus#8769](https://github.com/filecoin-project/lotus/pull/8769)) - - chore: bundle: remove wrongly committed bundle cars ([filecoin-project/lotus#8762](https://github.com/filecoin-project/lotus/pull/8762)) - - Revert "VM: Refactor pricelist to be based on network versions" ([filecoin-project/lotus#8758](https://github.com/filecoin-project/lotus/pull/8758)) - - feat: bench: simple sealing operations commands ([filecoin-project/lotus#8373](https://github.com/filecoin-project/lotus/pull/8373)) - - feat: networking: add healthz and livez endpoints ([filecoin-project/lotus#8692](https://github.com/filecoin-project/lotus/pull/8692)) - - fix: worker: don't log normal storage stat calls ([filecoin-project/lotus#8744](https://github.com/filecoin-project/lotus/pull/8744)) - - fix: worker: don't check params with --no-default when not needed ([filecoin-project/lotus#8741](https://github.com/filecoin-project/lotus/pull/8741)) - - feat: add create ledger wallet address by account index command ([filecoin-project/lotus#8657](https://github.com/filecoin-project/lotus/pull/8657)) - - fix: rpc: readd rpc.discover aliases; lotus-gateway openrpc ([filecoin-project/lotus#8738](https://github.com/filecoin-project/lotus/pull/8738)) - - feat: wdpost: Ignore faults in lotus-miner proving compute window-post ([filecoin-project/lotus#8737](https://github.com/filecoin-project/lotus/pull/8737)) - - fix: post workers: check proving params on startup ([filecoin-project/lotus#8736](https://github.com/filecoin-project/lotus/pull/8736)) - - feat: sched: Per worker concurrent task count limits ([filecoin-project/lotus#8725](https://github.com/filecoin-project/lotus/pull/8725)) - - feat: sched: Finalize* move selectors ([filecoin-project/lotus#8710](https://github.com/filecoin-project/lotus/pull/8710)) - - feat: sched: Add scheduler interfaces, configurable assigner ([filecoin-project/lotus#8700](https://github.com/filecoin-project/lotus/pull/8700)) - - feat: miner cli: sealing data-cid command ([filecoin-project/lotus#8715](https://github.com/filecoin-project/lotus/pull/8715)) - - Snap Deals full unseal ([filecoin-project/lotus#8478](https://github.com/filecoin-project/lotus/pull/8478)) - - deps: libp2p: update to the latest golibp2p tag ([filecoin-project/lotus#8704](https://github.com/filecoin-project/lotus/pull/8704)) - - fix: deps: restore butterfly network genesis from v1.14.4 ([filecoin-project/lotus#8708](https://github.com/filecoin-project/lotus/pull/8708)) - - build: version: bump the version to v1.15.4-rc1 ([filecoin-project/lotus#8646](https://github.com/filecoin-project/lotus/pull/8646)) - - ci: deps: Use testground-github-action from testground org ([filecoin-project/lotus#8490](https://github.com/filecoin-project/lotus/pull/8490)) - - feat: worker: lotus-worker run --no-default ([filecoin-project/lotus#8672](https://github.com/filecoin-project/lotus/pull/8672)) - - docs:sealing:fix default miner config comments ([filecoin-project/lotus#8689](https://github.com/filecoin-project/lotus/pull/8689)) - - fix: verifreg: update deprecation log ([filecoin-project/lotus#8690](https://github.com/filecoin-project/lotus/pull/8690)) - - fix: vm: support raw blocks in chain export ([filecoin-project/lotus#8691](https://github.com/filecoin-project/lotus/pull/8691)) - - feat: precommits info ([filecoin-project/lotus#8696](https://github.com/filecoin-project/lotus/pull/8696)) - - Implement cli command for compactPartitions ([filecoin-project/lotus#8637](https://github.com/filecoin-project/lotus/pull/8637)) - - feat: dagstore: add dagstore register-shard command ([filecoin-project/lotus#8645](https://github.com/filecoin-project/lotus/pull/8645)) - - stores: Deduplicate parallel stat requests ([filecoin-project/lotus#8589](https://github.com/filecoin-project/lotus/pull/8589)) -- github.com/filecoin-project/go-address (v0.0.6 -> v1.0.0): - - add more checks and define constants ([filecoin-project/go-address#31](https://github.com/filecoin-project/go-address/pull/31)) - - enforce that the trailing bits of an address string are standard ([filecoin-project/go-address#28](https://github.com/filecoin-project/go-address/pull/28)) - - sync: update CI config files ([filecoin-project/go-address#29](https://github.com/filecoin-project/go-address/pull/29)) - - chore: fix test on 32bit and non-cgo platforms ([filecoin-project/go-address#30](https://github.com/filecoin-project/go-address/pull/30)) -- github.com/filecoin-project/go-data-transfer (v1.15.1 -> v1.15.2): - - chore(deps): update libp2p v0.19.4 (#341) ([filecoin-project/go-data-transfer#341](https://github.com/filecoin-project/go-data-transfer/pull/341)) - - Fix transfer message bindnode wrap passing pointer to pointer - - Log less important messages at debug level (#334) ([filecoin-project/go-data-transfer#334](https://github.com/filecoin-project/go-data-transfer/pull/334)) - - fix(message): do not EncodeToNode selectors (#326) ([filecoin-project/go-data-transfer#326](https://github.com/filecoin-project/go-data-transfer/pull/326)) - - ci(circle): update to non-legacy image (#328) ([filecoin-project/go-data-transfer#328](https://github.com/filecoin-project/go-data-transfer/pull/328)) - - Merge branch 'release/v1.15.1' -- github.com/filecoin-project/go-fil-markets (v1.20.1-v16-2 -> v1.23.1): - - release: v1.23.1 - - Upgrade to `go-car` `2.4.1` (#733) ([filecoin-project/go-fil-markets#733](https://github.com/filecoin-project/go-fil-markets/pull/733)) - - release: v1.23.0 (#732) ([filecoin-project/go-fil-markets#732](https://github.com/filecoin-project/go-fil-markets/pull/732)) - - feat: update deps (#731) ([filecoin-project/go-fil-markets#731](https://github.com/filecoin-project/go-fil-markets/pull/731)) - - release: v1.22.2 (#729) ([filecoin-project/go-fil-markets#729](https://github.com/filecoin-project/go-fil-markets/pull/729)) - - Upgrade to go-ipfs-blockstore `v1.2.0` (#728) ([filecoin-project/go-fil-markets#728](https://github.com/filecoin-project/go-fil-markets/pull/728)) - - release: v1.22.1 (#727) ([filecoin-project/go-fil-markets#727](https://github.com/filecoin-project/go-fil-markets/pull/727)) - - Upgrade index-provider and related dependencies (#722) ([filecoin-project/go-fil-markets#722](https://github.com/filecoin-project/go-fil-markets/pull/722)) - - release: v1.22.0 (#726) ([filecoin-project/go-fil-markets#726](https://github.com/filecoin-project/go-fil-markets/pull/726)) - - migrate provider deal proposal label to the new format (#721) ([filecoin-project/go-fil-markets#721](https://github.com/filecoin-project/go-fil-markets/pull/721)) - - release: v1.21.0 (#720) ([filecoin-project/go-fil-markets#720](https://github.com/filecoin-project/go-fil-markets/pull/720)) - - Use new go-state-types state accessors (#711) (#719) ([filecoin-project/go-fil-markets#719](https://github.com/filecoin-project/go-fil-markets/pull/719)) - - chore: update go-car dependency (#709) ([filecoin-project/go-fil-markets#709](https://github.com/filecoin-project/go-fil-markets/pull/709)) - - fix:close ask/dealstatus stream (#710) ([filecoin-project/go-fil-markets#710](https://github.com/filecoin-project/go-fil-markets/pull/710)) - - fix: fire storage deal provider ready event after startup completes (#708) ([filecoin-project/go-fil-markets#708](https://github.com/filecoin-project/go-fil-markets/pull/708)) - - release: v1.20.3 (#703) ([filecoin-project/go-fil-markets#703](https://github.com/filecoin-project/go-fil-markets/pull/703)) - - validate deal proposal (#702) ([filecoin-project/go-fil-markets#702](https://github.com/filecoin-project/go-fil-markets/pull/702)) - - FIP 0027 integration (#694) ([filecoin-project/go-fil-markets#694](https://github.com/filecoin-project/go-fil-markets/pull/694)) - - Update index provider library (#698) ([filecoin-project/go-fil-markets#698](https://github.com/filecoin-project/go-fil-markets/pull/698)) - - feat: add offset to ListLocalDealsPage (#695) ([filecoin-project/go-fil-markets#695](https://github.com/filecoin-project/go-fil-markets/pull/695)) - - feat: provider deals pagination (#692) ([filecoin-project/go-fil-markets#692](https://github.com/filecoin-project/go-fil-markets/pull/692)) - - better answer message on ErrNotFound (#690) ([filecoin-project/go-fil-markets#690](https://github.com/filecoin-project/go-fil-markets/pull/690)) - - api to fetch a deal state (#691) ([filecoin-project/go-fil-markets#691](https://github.com/filecoin-project/go-fil-markets/pull/691)) - - release: v1.20.1 ([filecoin-project/go-fil-markets#689](https://github.com/filecoin-project/go-fil-markets/pull/689)) -- github.com/filecoin-project/go-indexer-core (v0.2.8 -> v0.2.16): - - Use sth with bad key recovery (#58) ([filecoin-project/go-indexer-core#58](https://github.com/filecoin-project/go-indexer-core/pull/58)) - - Update storethehash to get index recovery fix - - Update to storethehash with panic fix - - Update storethehash dependency - - update .github/workflows/go-check.yml - - update .github/workflows/go-test.yml - - update .github/workflows/automerge.yml - - Upgrade storethehash - - Sth with file fixer (#53) ([filecoin-project/go-indexer-core#53](https://github.com/filecoin-project/go-indexer-core/pull/53)) - - oops - - Use the new storethehash with index GC - - Update storethehash -- github.com/filecoin-project/go-legs (v0.3.10 -> v0.4.4): - - New version - - Update libp2p dependencies - - Put tests of non-exported functions into internal_test.go - - Compare with error instance instead of err string - - Fix derived protocol ID so there are no double slashes - - Update deps - - Bump version for rate limiter and test changes - - Simplify rate limiter configuration (#130) ([filecoin-project/go-legs#130](https://github.com/filecoin-project/go-legs/pull/130)) - - Bump version in preparation of rolling out http addr fix - - Learn HTTP publisher address from announce message - - Bump version - - Fix equality check during segmented sync - - Bump version in prep for releasing segmented sync feature - - Implement the ability to sync a DAG in segments of configurable depth - - Update version (#125) ([filecoin-project/go-legs#125](https://github.com/filecoin-project/go-legs/pull/125)) - - Fix rate limit burst refresh for graphsync (#124) ([filecoin-project/go-legs#124](https://github.com/filecoin-project/go-legs/pull/124)) - - Retry on rate limit error during HTTP sync - - Option for publisher to allow/reject data transfers (#122) ([filecoin-project/go-legs#122](https://github.com/filecoin-project/go-legs/pull/122)) - - Revert "Fix derived protocol ID so there are no double slashes" - - Fix derived protocol ID so there are no double slashes - - Do not let async goroutines build up (#119) ([filecoin-project/go-legs#119](https://github.com/filecoin-project/go-legs/pull/119)) - - Add ability to get subscriber http peerstore (#116) ([filecoin-project/go-legs#116](https://github.com/filecoin-project/go-legs/pull/116)) - - sync: update CI config files (#114) ([filecoin-project/go-legs#114](https://github.com/filecoin-project/go-legs/pull/114)) - - Better error if we cannot query head for sync (#115) ([filecoin-project/go-legs#115](https://github.com/filecoin-project/go-legs/pull/115)) - - Update version - - Update go-data-transfer and go-graphsync deps - - Fix out of date cborgen and regenerate voucher serialization - - Upgrade to the latest graphsync and datatransfer - - Implement rate limiting for subscribers (#111) ([filecoin-project/go-legs#111](https://github.com/filecoin-project/go-legs/pull/111)) -- github.com/filecoin-project/index-provider (v0.5.0 -> v0.8.1): - - Bump version in preparation for release - - Ignore staticcheck erros in generated cbor-gen - - Upgrade to tagged release of `go-data-transfer` - - Cache links of a root entry instead of resolving them on the fly - - Do not bother restoring cache when purge cache is set - - Upgrade dependencies - - Policy to allow/block indexers from syncing with provider (#230) ([filecoin-project/index-provider#230](https://github.com/filecoin-project/index-provider/pull/230)) - - Bump version to `0.8.0` in preparation for release - - Recover from corrupted cached chunks gracefully - - Smaller default MultihashIterator implementation (#228) ([filecoin-project/index-provider#228](https://github.com/filecoin-project/index-provider/pull/228)) - - Restore TAG in makefile after discussion - - Do not assume build system has bash shell - - Make linksystem less noisy - - add a getter to metadata ([filecoin-project/index-provider#221](https://github.com/filecoin-project/index-provider/pull/221)) - - Upgrade to go-legs `0.3.13` - - Remove nested `cmd` module now that go mod is upgraded to `1.17` - - Bump version to `0.7.0` in preparation for release - - Fix bug where no publisher caused panic when previous root is present - - Bump github.com/ipld/go-codec-dagpb from 1.3.0 to 1.3.1 (#215) ([filecoin-project/index-provider#215](https://github.com/filecoin-project/index-provider/pull/215)) - - Bump github.com/ipfs/go-ipfs from 0.11.0 to 0.12.1 in /cmd - - allow option specifying provider addrinfo ([filecoin-project/index-provider#214](https://github.com/filecoin-project/index-provider/pull/214)) - - sync: update CI config files (#210) ([filecoin-project/index-provider#210](https://github.com/filecoin-project/index-provider/pull/210)) - - Fix encoding of error in logs when instantiating publisher - - Bump version to `0.6.0` - - New announce command to announce latest advertisement - - Add `list car` command and refactor CAR admin server handlers - - Remove dependency to `go-ipfs-blocksutil` used only for testing - - Upgrade index provider to sti with bindnode schema - - Replace IPLD accumulate with IPLD schema file - - Update version and go-logs and storetheindex dependencies - - Remove temporary fixed by depending on head of main in sti - - Support multiple metadata transport protocols - - Fix incomplete sentence in README (#197) ([filecoin-project/index-provider#197](https://github.com/filecoin-project/index-provider/pull/197)) - - Rename `Callback` to a more specific name: `MultihashLister` - - Fix intermittently failing tests that use gossipsub - - Re-implement engine tests and re-enable all tests - - Refactor `config` package to `cmd` since that's where it is used - - Print ad chain stats and retry when syncing ads -- github.com/filecoin-project/specs-actors/v8 (v8.0.0 -> v8.0.1): - - don't panic during migration (#1598) ([filecoin-project/specs-actors#1598](https://github.com/filecoin-project/specs-actors/pull/1598)) -- github.com/filecoin-project/storetheindex (v0.3.5 -> v0.4.17): - - Update version and go-legs with new libp2p - - Add command to import providers from another indexer (#574) ([filecoin-project/storetheindex#574](https://github.com/filecoin-project/storetheindex/pull/574)) - - Update storetheindex/storetheindex in `dev` environment - - Update config with logging and missing settings - - Update config with logging and missing settings - - Update dev config with logging and missing settings - - More config items (#569) ([filecoin-project/storetheindex#569](https://github.com/filecoin-project/storetheindex/pull/569)) - - Deploy latest to `dev` environment (#567) ([filecoin-project/storetheindex#567](https://github.com/filecoin-project/storetheindex/pull/567)) - - Log levels are configurable in config file and reloadable (#564) ([filecoin-project/storetheindex#564](https://github.com/filecoin-project/storetheindex/pull/564)) - - Update storetheindex/storetheindex in `prod` environment - - Bump version to release reframe upgrade - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - update dependency on delegated routing; this change moves Reframe queries from the URL to the HTTP body ([filecoin-project/storetheindex#563](https://github.com/filecoin-project/storetheindex/pull/563)) - - Fix `/reframe` routing through CloudFront in `prod` - - Update storetheindex/storetheindex in `prod` environment - - Only log first bad multihash error to prevent log flooding. - - Create new version tag - - Deploy latest to `dev` environment (#557) ([filecoin-project/storetheindex#557](https://github.com/filecoin-project/storetheindex/pull/557)) - - Ignore invalid multihashes (#555) ([filecoin-project/storetheindex#555](https://github.com/filecoin-project/storetheindex/pull/555)) - - Skip ads with context deleted later in chain (#553) ([filecoin-project/storetheindex#553](https://github.com/filecoin-project/storetheindex/pull/553)) - - Do not create a PR in CD branches if there is no commit - - Add `INDEXER_WATCH_CONFIG` env var back to avoid race condition - - Do not trigger rolling deployment when indexer config changes - - Enable automatic config reload - - Deploy latest to `dev` environment (#548) ([filecoin-project/storetheindex#548](https://github.com/filecoin-project/storetheindex/pull/548)) - - Reload policy and rate limit settings without restarting daemon (#529) ([filecoin-project/storetheindex#529](https://github.com/filecoin-project/storetheindex/pull/529)) - - Assert ongoing announce does not deadlock ingestion (#546) ([filecoin-project/storetheindex#546](https://github.com/filecoin-project/storetheindex/pull/546)) - - Update storetheindex/storetheindex in `prod` environment - - Bump version to release CPU contention fix and corrupt key skip - - Update storetheindex/storetheindex in `dev` environment - - Use sth with bad key recovery (#543) ([filecoin-project/storetheindex#543](https://github.com/filecoin-project/storetheindex/pull/543)) - - Update storetheindex/storetheindex in `dev` environment - - Defer handling of announce until ad chain processing is finished - - Increase CPU resources in `prod` to `3.5` - - Increase CPU limit in `dev` to `3.5` - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Move changes in prod config from #528 to combine deployment - - Update storetheindex/storetheindex in `prod` environment - - update dep on delgated routing to v0.2.1 (#538) ([filecoin-project/storetheindex#538](https://github.com/filecoin-project/storetheindex/pull/538)) - - add metrics to reframe endpoint (#536) ([filecoin-project/storetheindex#536](https://github.com/filecoin-project/storetheindex/pull/536)) - - Move changes in dev config from #528 to combine deployment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update version and deps (#533) ([filecoin-project/storetheindex#533](https://github.com/filecoin-project/storetheindex/pull/533)) - - Ignore multihash entries that are too short (#530) ([filecoin-project/storetheindex#530](https://github.com/filecoin-project/storetheindex/pull/530)) - - Deploy latest to `dev` environment (#527) ([filecoin-project/storetheindex#527](https://github.com/filecoin-project/storetheindex/pull/527)) - - Upgrade go-legs to fix HTTP publisher address issue - - Use `http.Client` instead of `cleanhttp` in `retryablehttp` - - Re-allow all peers on `prod` and separate the config from `base` - - Update storetheindex/storetheindex in `prod` environment - - Update storetheindex/storetheindex in `dev` environment - - Allow other randomly selected peer IDs in `dev` - - Update storetheindex/storetheindex in `dev` environment - - Bump version in preparation to release segmented sync - - Reduce verbose logging of HTTP sync requests - - Deploy latest to `dev` environment (#509) ([filecoin-project/storetheindex#509](https://github.com/filecoin-project/storetheindex/pull/509)) - - Fix bug where tail of chain is synced twice - - Retry HTTP sync requests - - Use concrete `go-legs` version with segmented sync - - Deploy latest to `dev` environment (#499) ([filecoin-project/storetheindex#499](https://github.com/filecoin-project/storetheindex/pull/499)) - - Sync ads and entries in configurable segments - - Update config document for version 2 - - Improve test stability by asserting multihashes are eventually indexed - - Remove overriding std in/err in E2E test - - Fix intermittent test failures - - Update storetheindex/storetheindex in `prod` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Create new version tag - - Add memory optimized `r5a.2xlarge` workers to `dev` - - Configure rate limit (#488) ([filecoin-project/storetheindex#488](https://github.com/filecoin-project/storetheindex/pull/488)) - - Cleanup policy evaluation (#479) ([filecoin-project/storetheindex#479](https://github.com/filecoin-project/storetheindex/pull/479)) - - Add logging around announce messages (#481) ([filecoin-project/storetheindex#481](https://github.com/filecoin-project/storetheindex/pull/481)) - - Fix invalid json in dev config - - Only whitelist ingestion from a specific provider in `dev` for testing - - Use larger instance types and override config in dev to limit providers - - Upgrade indexer config base layer (#441) ([filecoin-project/storetheindex#441](https://github.com/filecoin-project/storetheindex/pull/441)) - - Define dedicated KMS keys used to encrypt autoretrieve secrets - - Allow `put` via cloudfront sitting in front of `cid.contact` - - Add a Reframe API server at HTTP `/reframe`. ([filecoin-project/storetheindex#464](https://github.com/filecoin-project/storetheindex/pull/464)) - - Allow GitHub Actions from ARG autoretrieve repo to publish to ECR - - GitOps deployment of dev-v2 cluster (#449) ([filecoin-project/storetheindex#449](https://github.com/filecoin-project/storetheindex/pull/449)) - - Onboard `autoretrieve` as a temporary tenant of sti `dev` cluster - - Stop deployment to `fil-dev` and `fil-prod` via CircleCI - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - update doc with current codes - - Add encrypted credentials to access GitHub for `index-observer` - - Add `index-observer` to dev cluster manifests - - Configure flux cd for `index-observer` on `dev` cluster - - Define `index-observer` ECR repo and CI to build and push images - - use default cidlink length (#450) ([filecoin-project/storetheindex#450](https://github.com/filecoin-project/storetheindex/pull/450)) - - Point `cid.contact` to `prod` CloudFront distribution - - Disable autoscaler in prod to investigate the selection policy - - Configure Promtail to forward host and container logs to PL loki - - Increase memory and CPU for indexer on `prod` - - Fix version written by init (#435) ([filecoin-project/storetheindex#435](https://github.com/filecoin-project/storetheindex/pull/435)) - - Update link to config documentation - - Create config file description - - Update README.md (#434) ([filecoin-project/storetheindex#434](https://github.com/filecoin-project/storetheindex/pull/434)) - - Log and config update (#429) ([filecoin-project/storetheindex#429](https://github.com/filecoin-project/storetheindex/pull/429)) - - Update storetheindex/storetheindex in `dev` environment - - Fix regex replacement in automated PR creation template - - Configure image update automation for `prod` - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Scale up `dev` to 2 instances - - Point infra.cid.contact to `prod` running in sti AWS account - - Update kustomization.yaml - - Deploy the latest release to `prod` environment - - Announce handling (#418) ([filecoin-project/storetheindex#418](https://github.com/filecoin-project/storetheindex/pull/418)) - - Update storethehash to get index recovery fix - - Deploy latest to `dev` environment (#400) ([filecoin-project/storetheindex#400](https://github.com/filecoin-project/storetheindex/pull/400)) - - If no value for "indexer" CLI flag, then read from config (#407) ([filecoin-project/storetheindex#407](https://github.com/filecoin-project/storetheindex/pull/407)) - - Configure resources for `dev` amd `prod` - - Write `prod` metrics to a dedicated AWS managed prometheus - - Create pl-grafana IAM user to integrate with PL Grafana - - Spread indexer instances across AZs when possible - - Publish containers to ECR repo when a release is created - - Define base promtail kustomization used for log forwarding - - Send metrics to AWS managed prometheus via private link - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update to core with storehash panic filx (#387) ([filecoin-project/storetheindex#387](https://github.com/filecoin-project/storetheindex/pull/387)) - - Use new flag names in commands - - Set up remote write for dev metrics to aws managed prometheus - - Upgrade monitoring manifests now that K8S clusters are on 1.22 - - Upgrade dev cluster to 1.22 - - Reduce iops per GiB for storage classes to unblock deployment - - Update storetheindex/storetheindex in `dev` environment - - Quote glob format to select tags - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Skip dev CD job if PR it should create exists already - - Don't override image in prod until auto deploy is set up - - Update version - - Use `io2` storage class for `prod` instances - - support a list of peers from which we accept advertisements for other providers (#344) ([filecoin-project/storetheindex#344](https://github.com/filecoin-project/storetheindex/pull/344)) - - Add AWS EBS CSI to dev cluster manifests - - Use io2 storage class for indexer pods in `dev` - - Update storetheindex/storetheindex in `dev` environment - - Fix ECR build still running on sti bot pushes to `deploy` directory - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Remove skip message from image update automation - - Specify pod disruption budget for storetheindex - - Add readiness probe to base storetheindex K8S manifests - - Fix wrong publisher address when using HTTP (#357) ([filecoin-project/storetheindex#357](https://github.com/filecoin-project/storetheindex/pull/357)) - - Update storetheindex/storetheindex in `dev` environment - - Update storetheindex/storetheindex in `dev` environment - - Do not publish to ECR if pusher is `sti-bot` - - Update storetheindex/storetheindex in `dev` environment - - Configure automated image deployment for `dev` environment - - Configure private ECR repo for storetheindex in `common` infra - - Revert "Remove redundant private ECR repo" - - Remove redundant private ECR repo - - Create GitHub Actions credentials and set container publish to ECR - - Bump github.com/ipfs/go-ipfs from 0.11.0 to 0.12.1 - - Configure EBS CSI controller to run on all nodes - - Define production infrastructure in `us-east-2` - - Add README on how to interact with `sops` encrypted secrets - - Define prod kustomization overlay - - Upgrade storethehash - - Use storethehash with corrupted file fixer (#339) ([filecoin-project/storetheindex#339](https://github.com/filecoin-project/storetheindex/pull/339)) - - Use storethehash that has index GC - - Bump chart version to include templated readiness probe - - Add `io2` storage class to dev cluster - - Restructure identity settings to allow per instance key - - Specify remote build for `monitoring` in HTTP but different format - - Update version.json (#333) ([filecoin-project/storetheindex#333](https://github.com/filecoin-project/storetheindex/pull/333)) - - Update version.json (#332) ([filecoin-project/storetheindex#332](https://github.com/filecoin-project/storetheindex/pull/332)) - - Fix `MalformedYAMLError` when kustomization uses HTTPS to clone repo - - Set up K8S monitoring - - Allow Kyle to interact with dev KMS - - sync: update CI config files (#317) ([filecoin-project/storetheindex#317](https://github.com/filecoin-project/storetheindex/pull/317)) - - Fix out of bounds panic in registery - - Add `cluster-autoscaler` to list of cluster level kustomizations - - Set up cluster-autoscaler on `dev` - - Cache 404s in cloudfront (#314) ([filecoin-project/storetheindex#314](https://github.com/filecoin-project/storetheindex/pull/314)) - - Added users cmharden and steveFraser to kms.tf and aws-auth.yaml (#313) ([filecoin-project/storetheindex#313](https://github.com/filecoin-project/storetheindex/pull/313)) - - Set up caching layer for dev endpoint using CloudFront - - Give Kyle access to `dev` cluster - - Update version - - Fix pprof handlers - - Update dependencies - - Add comments and tests for ad signature - - Set up `dev.cid.contact` with all things manged by K8S - - Store publisher address with publisher ID (#298) ([filecoin-project/storetheindex#298](https://github.com/filecoin-project/storetheindex/pull/298)) - - Define base kustomization and dev overlay for storetheindex - - Define KMS key to encrypt secrets used by storetheindex - - Allow the ability to configure private key via file - - Install `nginx` ingress controller on dev K8S cluster - - Replace target CD branch to `main` - - Define base and dev overlay K8S manifests - - Define terraform infrastructure for dev EKS cluster - - Fix `.gitignore` to not ignore all directories named `storetheindex` - - Add PR Template (#292) ([filecoin-project/storetheindex#292](https://github.com/filecoin-project/storetheindex/pull/292)) - - Fix find latency metric (#284) ([filecoin-project/storetheindex#284](https://github.com/filecoin-project/storetheindex/pull/284)) - - About doc (#283) ([filecoin-project/storetheindex#283](https://github.com/filecoin-project/storetheindex/pull/283)) - - Bump version to `0.4.0` after bindnode merge (#281) ([filecoin-project/storetheindex#281](https://github.com/filecoin-project/storetheindex/pull/281)) - - More efficient batch processing of multihashes (#282) ([filecoin-project/storetheindex#282](https://github.com/filecoin-project/storetheindex/pull/282)) - - Fix goroutine leak in go-statemachine (#280) ([filecoin-project/storetheindex#280](https://github.com/filecoin-project/storetheindex/pull/280)) - - Use IPLD bindnode and reduce boilerplate code in ingest schema - - Update version and go-legs - - Build docker image using go1.18 - - Fix a goroutine leak in go-libp2p-swarm - - Limit number of open connection to the http server (#273) ([filecoin-project/storetheindex#273](https://github.com/filecoin-project/storetheindex/pull/273)) - - Remove recursion depth limits for sync (#270) ([filecoin-project/storetheindex#270](https://github.com/filecoin-project/storetheindex/pull/270)) - - Fair share ingest workers (#259) ([filecoin-project/storetheindex#259](https://github.com/filecoin-project/storetheindex/pull/259)) - - Drop support for Go 1.16 (#267) ([filecoin-project/storetheindex#267](https://github.com/filecoin-project/storetheindex/pull/267)) - - Set the maximum acceptable length for advertisement metadata - - Revert "Skip e2e tests until provider side is upgraded." - - Add indexer ecosystem diagram and source ([filecoin-project/storetheindex#264](https://github.com/filecoin-project/storetheindex/pull/264)) - - Skip e2e tests until provider side is upgraded. - - Replace `v0.Metadata` with `[]byte` - - Don't optimistically delete an Ad (#258) ([filecoin-project/storetheindex#258](https://github.com/filecoin-project/storetheindex/pull/258)) - - Use go1.17 for docker build - - Set latestsynchandler on go legs (#256) ([filecoin-project/storetheindex#256](https://github.com/filecoin-project/storetheindex/pull/256)) - - Update to latest legs and update version - - don't be as aggressive about using :3000 / :3001 on client request (#254) ([filecoin-project/storetheindex#254](https://github.com/filecoin-project/storetheindex/pull/254)) - - Create creating-an-index-provider.md (#253) ([filecoin-project/storetheindex#253](https://github.com/filecoin-project/storetheindex/pull/253)) - - add cors headers to find interface (#252) ([filecoin-project/storetheindex#252](https://github.com/filecoin-project/storetheindex/pull/252)) - - Update dependencies and version - - Reduce log volume and log progress (#246) ([filecoin-project/storetheindex#246](https://github.com/filecoin-project/storetheindex/pull/246)) - - Indexer auto-syncs after period of no contact with publisher (#247) ([filecoin-project/storetheindex#247](https://github.com/filecoin-project/storetheindex/pull/247)) - - Only increase error metric on error - - Remove readBeforeErr hack now that cbor-gen bug is fixed +## Bug Fixes +- fix: format error log ([filecoin-project/lotus#8854](https://github.com/filecoin-project/lotus/pull/8854)) +- fix: build: really make macos compatible (#8853) ([filecoin-project/lotus#8853](https://github.com/filecoin-project/lotus/pull/8853)) +- fix: build: fix pack script and add calibrationnet to bundle ([filecoin-project/lotus#8852](https://github.com/filecoin-project/lotus/pull/8852)) +- fix: build: fix 2k build params ([filecoin-project/lotus#8835](https://github.com/filecoin-project/lotus/pull/8835)) +- Fix: PaychGetRestartAfterAddFundsMsg may stuck in forever waiting ([filecoin-project/lotus#8829](https://github.com/filecoin-project/lotus/pull/8829)) +- fix: paych: Print "waiting for confirmation.." ([filecoin-project/lotus#8823](https://github.com/filecoin-project/lotus/pull/8823)) +- fix: build: genesis miner network version ([filecoin-project/lotus#8756](https://github.com/filecoin-project/lotus/pull/8756)) +- fix: bench: consistency in description ([filecoin-project/lotus#8777](https://github.com/filecoin-project/lotus/pull/8777)) +- fix: worker: don't log normal storage stat calls ([filecoin-project/lotus#8744](https://github.com/filecoin-project/lotus/pull/8744)) +- fix: worker: don't check params with --no-default when not needed ([filecoin-project/lotus#8741](https://github.com/filecoin-project/lotus/pull/8741)) +- fix: post workers: check proving params on startup ([filecoin-project/lotus#8736](https://github.com/filecoin-project/lotus/pull/8736)) +- fix: rpc: readd rpc.discover aliases; lotus-gateway openrpc ([filecoin-project/lotus#8738](https://github.com/filecoin-project/lotus/pull/8738)) +- fix: verifreg: update deprecation log ([filecoin-project/lotus#8690](https://github.com/filecoin-project/lotus/pull/8690)) +- fix: vm: support raw blocks in chain export ([filecoin-project/lotus#8691](https://github.com/filecoin-project/lotus/pull/8691)) +- fix: deps: restore butterfly network genesis from v1.14.4 ([filecoin-project/lotus#8708](https://github.com/filecoin-project/lotus/pull/8708)) +- fix: msig cli: Check for existing signers in add-propose ([filecoin-project/lotus#8833](https://github.com/filecoin-project/lotus/pull/8833)) +- fix: cli: Break out of retrieval if provider cancels ([filecoin-project/lotus#8912](https://github.com/filecoin-project/lotus/pull/8912)) +- fix: appimage build ([filecoin-project/lotus#8931](https://github.com/filecoin-project/lotus/pull/8931)) +- fix: Make cli deal command get Block Delay specific to build ([filecoin-project/lotus#8896](https://github.com/filecoin-project/lotus/pull/8896)) +- fix: deps: update FFI to fix a slow memory leak ([filecoin-project/lotus#9044](https://github.com/filecoin-project/lotus/pull/9044)) +- fix: sealing: hacky sealing fix backport ([filecoin-project/lotus#9055](https://github.com/filecoin-project/lotus/pull/9055)) + +## Dependency Updates + +- github.com/filecoin-project/go-address (v0.0.6 -> v1.0.0) +- github.com/filecoin-project/go-fil-markets (v1.20.1 -> v1.23.1) +- github.com/filecoin-project/go-indexer-core (v0.2.8 -> v0.2.9) +- github.com/filecoin-project/go-data-transfer (v1.15.1 -> v1.15.2) +- github.com/filecoin-project/go-legs (v0.3.7 -> v0.4.4) +- github.com/filecoin-project/go-state-types (v0.1.8 -> v0.1.10) +- github.com/filecoin-project/index-provider (v0.5.0 -> v0.8.1) +- github.com/filecoin-project/specs-actors (v0.9.14 -> v0.9.15) +- github.com/filecoin-project/specs-actors/v3 (v3.1.1 -> v3.1.2) +- github.com/filecoin-project/specs-actors/v4 (v4.0.1 -> v4.0.2) +- github.com/filecoin-project/specs-actors/v5 (v5.0.4 -> v5.0.6) +- github.com/filecoin-project/specs-actors/v6 (v6.0.1 -> v6.0.2) +- github.com/filecoin-project/specs-actors/v7 (v7.0.0 -> v7.0.1) +- github.com/filecoin-project/specs-actors/v8 (null -> v8.0.1) +- github.com/filecoin-project/specs-storage (v0.2.4 -> v0.4.1) +- github.com/filecoin-project/storetheindex (v0.3.5 -> v0.4.17) +- chore: update and fix libp2p ([filecoin-project/lotus#8996](https://github.com/filecoin-project/lotus/pull/8996)) + +## Others + +- chore: storage refactors part 1 ([filecoin-project/lotus#8858](https://github.com/filecoin-project/lotus/pull/8858)) +- chore: fix imports conflict ([filecoin-project/lotus#8863](https://github.com/filecoin-project/lotus/pull/8863)) +- chore: Fix imports ([filecoin-project/lotus#8859](https://github.com/filecoin-project/lotus/pull/8859)) +- chore: backport: release v1.16.0 back to master ([filecoin-project/lotus#8855](https://github.com/filecoin-project/lotus/pull/8855)) +- chore: improve error message when maxPrice is too low ([filecoin-project/lotus#8818](https://github.com/filecoin-project/lotus/pull/8818)) +- chore: bundle: remove wrongly committed bundle cars ([filecoin-project/lotus#8762](https://github.com/filecoin-project/lotus/pull/8762)) +- chore: storage refactors part 1 ([filecoin-project/lotus#8858](https://github.com/filecoin-project/lotus/pull/8858)) +- chore: sealing pipeline: Remove adapter code (storage refactors part 2) ([filecoin-project/lotus#8871](https://github.com/filecoin-project/lotus/pull/8871)) +- deps: libp2p: update to the latest golibp2p tag ([filecoin-project/lotus#8704](https://github.com/filecoin-project/lotus/pull/8704)) +- feat: shed: report the "user version" ([filecoin-project/lotus#8864](https://github.com/filecoin-project/lotus/pull/8864)) +- feat: Add rate limiting to the lotus gateway ([filecoin-project/lotus#8517](https://github.com/filecoin-project/lotus/pull/8517)) +- feat: lotus-shed get remote peer hello message ([filecoin-project/lotus#8787](https://github.com/filecoin-project/lotus/pull/8787)) +- feat: refactor: actor bundling system (#8838) ([filecoin-project/lotus#8838](https://github.com/filecoin-project/lotus/pull/8838)) +- feat: add create ledger wallet address by account index command ([filecoin-project/lotus#8657](https://github.com/filecoin-project/lotus/pull/8657)) +- feat: conformance & tvx: support ReportConsensusFault messages ([filecoin-project/lotus#8302](https://github.com/filecoin-project/lotus/pull/8302)) +- feat: migration: Implement function to migrate actors with only code changes ([filecoin-project/lotus#8843](https://github.com/filecoin-project/lotus/pull/8843)) +- feat: only enable rcmgr by default in full nodes ([filecoin-project/lotus#8769](https://github.com/filecoin-project/lotus/pull/8769)) +- docs:sealing:fix default miner config comments ([filecoin-project/lotus#8689](https://github.com/filecoin-project/lotus/pull/8689)) +- ci: deps: Use testground-github-action from testground org ([filecoin-project/lotus#8490](https://github.com/filecoin-project/lotus/pull/8490)) +- ux: print absolute time for proving period start in proving cli ([filecoin-project/lotus#8954](https://github.com/filecoin-project/lotus/pull/8954)) +- fix incorrect usage of peer.IDFromString (should be peer.Decode) ([filecoin-project/lotus#8993](https://github.com/filecoin-project/lotus/pull/8993)) +- fix: Delegate storage auth on market nodes ([filecoin-project/lotus#8978](https://github.com/filecoin-project/lotus/pull/8978)) +- Add new proofs version type ([filecoin-project/lotus#8848](https://github.com/filecoin-project/lotus/pull/8848)) +- refactor: remove old BlockSyncProtocolID ([filecoin-project/lotus#8820](https://github.com/filecoin-project/lotus/pull/8820)) +- stores: Deduplicate parallel stat requests ([filecoin-project/lotus#8589](https://github.com/filecoin-project/lotus/pull/8589)) +- change 1475 bootstrap peer ([filecoin-project/lotus#9008](https://github.com/filecoin-project/lotus/pull/9008)) + Contributors | Contributor | Commits | Lines ± | Files Changed | @@ -530,7 +170,6 @@ Contributors | Daniel N | 1 | +1/-1 | 1 | | BMZ | 1 | +1/-1 | 1 | - # 1.16.1 / 2022-07-07 This is an OPTIONAL PATCH releases for storage providers who have failed to publish `SubmitWindowedPoSt` due to out of gas error. The error log looks like `/wdpost_run.go:xxx estimating gas {"error": "estimating gas used: message execution failed: exit SysErrOutOfGas(7)...`. From 04fce8a5faf4f110a1e836d1d56322ea7be38990 Mon Sep 17 00:00:00 2001 From: Ian Davis Date: Sun, 24 Jul 2022 22:16:16 -0700 Subject: [PATCH 3/4] Fix snap publishing flow, publish assets independently --- .circleci/config.yml | 71 +++++++++++++++---- .circleci/template.yml | 71 +++++++++++++++---- ...ild-bundle.sh => build-appimage-bundle.sh} | 23 ------ scripts/build-arch-bundle | 46 ++++++++++++ ...ish-release.sh => publish-arch-release.sh} | 14 ++++ 5 files changed, 172 insertions(+), 53 deletions(-) rename scripts/{build-bundle.sh => build-appimage-bundle.sh} (52%) create mode 100755 scripts/build-arch-bundle rename scripts/{publish-release.sh => publish-arch-release.sh} (92%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 914fa2ffd..dad86860a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -115,7 +115,7 @@ jobs: command: | git --no-pager diff go.mod go.sum git --no-pager diff --quiet go.mod go.sum - build-all: + build-linux: executor: golang steps: - install-deps @@ -536,6 +536,19 @@ jobs: publish: description: publish binary artifacts executor: ubuntu + parameters: + linux: + default: false + description: publish linux binaries? + type: boolean + darwin: + default: false + description: publish darwin binaries? + type: boolean + appimage: + default: false + description: publish appimage binaries? + type: boolean steps: - run: name: Install git jq curl @@ -546,12 +559,21 @@ jobs: - install_ipfs - attach_workspace: at: "." - - run: - name: Create bundles - command: ./scripts/build-bundle.sh - - run: - name: Publish release - command: ./scripts/publish-release.sh + - when: + condition: << parameters.linux >> + steps: + - run: ./scripts/build-arch-bundle.sh linux + - run: ./scripts/publish-arch-release.sh linux + - when: + condition: << parameters.darwin>> + steps: + - run: ./scripts/build-arch-bundle.sh darwin + - run: ./scripts/publish-arch-release.sh darwin + - when: + condition: << parameters.appimage >> + steps: + - run: ./scripts/build-appimage-bundle.sh + - run: ./scripts/publish-arch-release.sh appimage publish-snapcraft: description: build and push snapcraft @@ -568,11 +590,6 @@ jobs: - run: name: install snapcraft command: sudo snap install snapcraft --classic - - run: - name: create snapcraft config file - command: | - mkdir -p ~/.config/snapcraft - echo "$SNAPCRAFT_LOGIN_FILE" | base64 -d > ~/.config/snapcraft/snapcraft.cfg - run: name: build snap command: snapcraft --use-lxd @@ -1020,7 +1037,7 @@ workflows: only: - master - build-debug - - build-all: + - build-linux: filters: tags: only: @@ -1042,6 +1059,18 @@ workflows: only: - /^v\d+\.\d+\.\d+(-rc\d+)?$/ - build-appimage: + filters: + branches: + only: + - /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/ + tags: + only: + - /^v\d+\.\d+\.\d+(-rc\d+)?$/ + - publish: + name: publish-macos + darwin: true + requires: + - build-macos filters: branches: ignore: @@ -1050,9 +1079,21 @@ workflows: only: - /^v\d+\.\d+\.\d+(-rc\d+)?$/ - publish: + name: publish-linux + linux: true + requires: + - build-linux + filters: + branches: + ignore: + - /.*/ + tags: + only: + - /^v\d+\.\d+\.\d+(-rc\d+)?$/ + - publish: + name: publish-appimage + appimage: true requires: - - build-all - - build-macos - build-appimage filters: branches: diff --git a/.circleci/template.yml b/.circleci/template.yml index 482eb72bf..ff5beeff1 100644 --- a/.circleci/template.yml +++ b/.circleci/template.yml @@ -115,7 +115,7 @@ jobs: command: | git --no-pager diff go.mod go.sum git --no-pager diff --quiet go.mod go.sum - build-all: + build-linux: executor: golang steps: - install-deps @@ -536,6 +536,19 @@ jobs: publish: description: publish binary artifacts executor: ubuntu + parameters: + linux: + default: false + description: publish linux binaries? + type: boolean + darwin: + default: false + description: publish darwin binaries? + type: boolean + appimage: + default: false + description: publish appimage binaries? + type: boolean steps: - run: name: Install git jq curl @@ -546,12 +559,21 @@ jobs: - install_ipfs - attach_workspace: at: "." - - run: - name: Create bundles - command: ./scripts/build-bundle.sh - - run: - name: Publish release - command: ./scripts/publish-release.sh + - when: + condition: << parameters.linux >> + steps: + - run: ./scripts/build-arch-bundle.sh linux + - run: ./scripts/publish-arch-release.sh linux + - when: + condition: << parameters.darwin>> + steps: + - run: ./scripts/build-arch-bundle.sh darwin + - run: ./scripts/publish-arch-release.sh darwin + - when: + condition: << parameters.appimage >> + steps: + - run: ./scripts/build-appimage-bundle.sh + - run: ./scripts/publish-arch-release.sh appimage publish-snapcraft: description: build and push snapcraft @@ -568,11 +590,6 @@ jobs: - run: name: install snapcraft command: sudo snap install snapcraft --classic - - run: - name: create snapcraft config file - command: | - mkdir -p ~/.config/snapcraft - echo "$SNAPCRAFT_LOGIN_FILE" | base64 -d > ~/.config/snapcraft/snapcraft.cfg - run: name: build snap command: snapcraft --use-lxd @@ -800,7 +817,7 @@ workflows: only: - master - build-debug - - build-all: + - build-linux: filters: tags: only: @@ -822,6 +839,18 @@ workflows: only: - /^v\d+\.\d+\.\d+(-rc\d+)?$/ - build-appimage: + filters: + branches: + only: + - /^release\/v\d+\.\d+\.\d+(-rc\d+)?$/ + tags: + only: + - /^v\d+\.\d+\.\d+(-rc\d+)?$/ + - publish: + name: publish-macos + darwin: true + requires: + - build-macos filters: branches: ignore: @@ -830,9 +859,21 @@ workflows: only: - /^v\d+\.\d+\.\d+(-rc\d+)?$/ - publish: + name: publish-linux + linux: true + requires: + - build-linux + filters: + branches: + ignore: + - /.*/ + tags: + only: + - /^v\d+\.\d+\.\d+(-rc\d+)?$/ + - publish: + name: publish-appimage + appimage: true requires: - - build-all - - build-macos - build-appimage filters: branches: diff --git a/scripts/build-bundle.sh b/scripts/build-appimage-bundle.sh similarity index 52% rename from scripts/build-bundle.sh rename to scripts/build-appimage-bundle.sh index fe1c88611..0d6f8ab40 100755 --- a/scripts/build-bundle.sh +++ b/scripts/build-appimage-bundle.sh @@ -1,11 +1,6 @@ #!/usr/bin/env bash set -ex -ARCHS=( - "darwin" - "linux" -) - REQUIRED=( "ipfs" "sha512sum" @@ -31,24 +26,6 @@ PID="$!" trap "kill -9 ${PID}" EXIT sleep 30 -for ARCH in "${ARCHS[@]}" -do - mkdir -p "${ARCH}/lotus" - pushd "${ARCH}" - for BINARY in "${BINARIES[@]}" - do - cp "../../${ARCH}/${BINARY}" "lotus/" - chmod +x "lotus/${BINARY}" - done - - tar -zcvf "../lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz" lotus - popd - rm -rf "${ARCH}" - - sha512sum "lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz" > "lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz.sha512" - - ipfs add -q "lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz" > "lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz.cid" -done cp "../appimage/Lotus-${CIRCLE_TAG}-x86_64.AppImage" . sha512sum "Lotus-${CIRCLE_TAG}-x86_64.AppImage" > "Lotus-${CIRCLE_TAG}-x86_64.AppImage.sha512" ipfs add -q "Lotus-${CIRCLE_TAG}-x86_64.AppImage" > "Lotus-${CIRCLE_TAG}-x86_64.AppImage.cid" diff --git a/scripts/build-arch-bundle b/scripts/build-arch-bundle new file mode 100755 index 000000000..27b4218f5 --- /dev/null +++ b/scripts/build-arch-bundle @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +set -ex + +ARCH=$1 + +REQUIRED=( + "ipfs" + "sha512sum" +) +for REQUIRE in "${REQUIRED[@]}" +do + command -v "${REQUIRE}" >/dev/null 2>&1 || echo >&2 "'${REQUIRE}' must be installed" +done + +mkdir bundle +pushd bundle + +BINARIES=( + "lotus" + "lotus-miner" + "lotus-worker" +) + +export IPFS_PATH=`mktemp -d` +ipfs init +ipfs daemon & +PID="$!" +trap "kill -9 ${PID}" EXIT +sleep 30 + +mkdir -p "${ARCH}/lotus" +pushd "${ARCH}" +for BINARY in "${BINARIES[@]}" +do + cp "../../${ARCH}/${BINARY}" "lotus/" + chmod +x "lotus/${BINARY}" +done + +tar -zcvf "../lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz" lotus +popd +rm -rf "${ARCH}" + +sha512sum "lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz" > "lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz.sha512" + +ipfs add -q "lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz" > "lotus_${CIRCLE_TAG}_${ARCH}-amd64.tar.gz.cid" +popd diff --git a/scripts/publish-release.sh b/scripts/publish-arch-release.sh similarity index 92% rename from scripts/publish-release.sh rename to scripts/publish-arch-release.sh index 22572de60..b47ad53fe 100755 --- a/scripts/publish-release.sh +++ b/scripts/publish-arch-release.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash set -e +ARCH=$1 + pushd bundle # make sure we have a token set, api requests won't work otherwise @@ -61,23 +63,35 @@ fi RELEASE_UPLOAD_URL=`echo "${RELEASE_RESPONSE}" | jq -r '.upload_url' | cut -d'{' -f1` echo "Preparing to send artifacts to ${RELEASE_UPLOAD_URL}" +if [ $ARCH = 'linux' ]; then artifacts=( "lotus_${CIRCLE_TAG}_linux-amd64.tar.gz" "lotus_${CIRCLE_TAG}_linux-amd64.tar.gz.cid" "lotus_${CIRCLE_TAG}_linux-amd64.tar.gz.sha512" +) +elif [ $ARCH = 'darwin' ]; then +artifacts=( "lotus_${CIRCLE_TAG}_darwin-amd64.tar.gz" "lotus_${CIRCLE_TAG}_darwin-amd64.tar.gz.cid" "lotus_${CIRCLE_TAG}_darwin-amd64.tar.gz.sha512" +) +elif [ $ARCH = 'appimage' ]; then +artifacts=( "Lotus-${CIRCLE_TAG}-x86_64.AppImage" "Lotus-${CIRCLE_TAG}-x86_64.AppImage.cid" "Lotus-${CIRCLE_TAG}-x86_64.AppImage.sha512" ) +else + echo "$1 is not a supported architecture to publish a release for" 1>&2 + exit 1 +fi for RELEASE_FILE in "${artifacts[@]}" do echo "Uploading ${RELEASE_FILE}..." curl \ --request POST \ + --fail \ --header "Authorization: token ${GITHUB_TOKEN}" \ --header "Content-Type: application/octet-stream" \ --data-binary "@${RELEASE_FILE}" \ From 1d55066029dd1ba2cb1fe5f86a5805fcb01eea58 Mon Sep 17 00:00:00 2001 From: Ian Davis Date: Sun, 24 Jul 2022 22:20:35 -0700 Subject: [PATCH 4/4] Removed unused array --- scripts/build-appimage-bundle.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/scripts/build-appimage-bundle.sh b/scripts/build-appimage-bundle.sh index 0d6f8ab40..d99b459b9 100755 --- a/scripts/build-appimage-bundle.sh +++ b/scripts/build-appimage-bundle.sh @@ -13,12 +13,6 @@ done mkdir bundle pushd bundle -BINARIES=( - "lotus" - "lotus-miner" - "lotus-worker" -) - export IPFS_PATH=`mktemp -d` ipfs init ipfs daemon &