From 7ee155370af6b79c7dd999c573001f6312182429 Mon Sep 17 00:00:00 2001 From: Phi Date: Tue, 13 Feb 2024 21:56:10 +0100 Subject: [PATCH 1/3] Prep Lotus v1.26.0-rc1 - For sanity reverting the mainnet upgrade epoch to 99999999, and then only set it when cutting the final release -Update Calibnet CIDs to v13.0.0-rc3 - Add GetActorEvents, SubscribeActorEvents, GetAllClaims and GetAllAllocations methods to the changelog Co-Authored-By: Jiaying Wang <42981373+jennijuju@users.noreply.github.com> --- CHANGELOG.md | 134 +++++++++++++++++++------ build/params_calibnet.go | 4 +- build/params_mainnet.go | 4 +- build/version.go | 2 +- documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-provider.md | 2 +- documentation/en/cli-lotus-worker.md | 2 +- documentation/en/cli-lotus.md | 2 +- 8 files changed, 114 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ba321716..ef279974a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,30 +4,72 @@ ## New features -### GetActorEvents and SubscribeActorEvents +## Improvements -[FIP-0049](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0049.md) introduced _Actor Events_ that can be emitted by user programmed actors. [FIP-0083](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0083.md) introduces new events emitted by the builtin Verified Registry, Miner and Market Actors. These new events for builtin actors are being activated with network version 22 to coincide with _Direct Data Onboarding_ as defined in [FIP-0076](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0076.md) which introduces additional flexibility for data onboarding. Sector, Deal and DataCap lifecycles can be tracked with these events, providing visibility and options for programmatic responses to changes in state. +# v1.26.0-rc1 / 2024-03-05 -Actor events are available on message receipts, but can now be retrieved from a node using the new `GetActorEvents` and `SubscribeActorEvents` methods. These methods allow for querying and subscribing to actor events, respectively. They depend on the Lotus node both collecting events (with `Fevm.Events.RealTimeFilterAPI` and `Fevm.Events.HistoricFilterAPI`) and being enabled with the new configuration option `Events.EnableActorEventsAPI`. Note that a Lotus node can only respond to requests for historic events that it retains in its event store. +This is the first release candidate of the upcoming MANDATORY Lotus v1.26.0 release, which will deliver the Filecoin network version 22, codenamed Dragon 🐉. -Both `GetActorEvents` and `SubscribeActorEvents` take a filter parameter which can optionally filter events on: +**This release candidate sets the calibration network to upgrade at epoch 1427974, which is 2024-03-11T14:00:00Z** +This release does NOT set the mainnet upgrade epoch yet, in which will be updated in the final release. +The Filecoin network version 22 delivers the following FIPs: -* `Addresses` of the actor(s) emitting the event -* Specific `Fields` within the event -* `FromHeight` and `ToHeight` to filter events by block height -* `TipSetKey` to restrict events contained within a specific tipset +- [FIP-0063: Switching to new Drand mainnet network](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0063.md) +- [FIP-0074: Remove cron-based automatic deal settlement](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0074.md) +- [FIP-0076: Direct data onboarding](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0076.md) +- [FIP-0083: Add built-in Actor events in the Verified Registry, Miner and Market Actors](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0083.md) -`GetActorEvents` provides a one-time query for actor events, while `SubscribeActorEvents` provides a long-lived connection (via websockets) to the Lotus node, allowing for real-time updates on actor events. The subscription can be cancelled by the client at any time. +## v13 Builtin Actor Bundle -### GetAllClaims and GetAllAlocations +The actor bundles for the **calibration network** can be checked as follows: -2 new methods have benn added to the Lotus API called `GetAllAllocations` and `GetAllClaims` which lists all the available allocations and claims available in the actor state. +``` +lotus state actor-cids --network-version=22 +Network Version: 22 +Actor Version: 13 +Manifest CID: bafy2bzacea4firkyvt2zzdwqjrws5pyeluaesh6uaid246tommayr4337xpmi -See [FIP-0045](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0045.md) for background on claims and allocations. +Actor CID +account bafk2bzaceb3j36ri5y5mfklgp5emlvrms6g4733ss2j3l7jismrxq6ng3tcc6 +cron bafk2bzaceaz6rocamdxehgpwcbku6wlapwpgzyyvkrploj66mlqptsulf52bs +datacap bafk2bzacea22nv5g3yngpxvonqfj4r2nkfk64y6yw2malicm7odk77x7zuads +eam bafk2bzaceatqtjzj7623i426noaslouvluhz6e3md3vvquqzku5qj3532uaxg +ethaccount bafk2bzacean3hs7ga5csw6g3uu7watxfnqv5uvxviebn3ba6vg4sagwdur5pu +evm bafk2bzacec5ibmbtzuzjgwjmksm2n6zfq3gkicxqywwu7tsscqgdzajpfctxk +init bafk2bzaced5sq72oemz6qwi6yssxwlos2g54zfprslrx5qfhhx2vlgsbvdpcs +multisig bafk2bzacedbgei6jkx36fwdgvoohce4aghvpohqdhoco7p4thszgssms7olv2 +paymentchannel bafk2bzaceasmgmfsi4mjanxlowsub65fmevhzky4toeqbtw4kp6tmu4kxjpgq +placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro +reward bafk2bzacedjyp6ll5ez27dfgldjj4tntxfvyp4pa5zkk7s5uhipzqjyx2gmuc +storagemarket bafk2bzaceabolct6qdnefwcrtati2us3sxtxfghyqk6aamfhl6byyefmtssqi +storageminer bafk2bzaceckzw3v7wqliyggvjvihz4wywchnnsie4frfvkm3fm5znb64mofri +storagepower bafk2bzacea7t4wynzjajl442mpdqbnh3wusjusqtnzgpvefvweh4n2tgzgqhu +system bafk2bzacedjnrb5glewazsxpcx6rwiuhl4kwrfcqolyprn6rrjtlzmthlhdq6 +verifiedregistry bafk2bzacednskl3bykz5qpo54z2j2p4q44t5of4ktd6vs6ymmg2zebsbxazkm +``` + +## Migration + +We are expecting a bit heavier than normal state migration for this upgrade due to the amount of state changes introduced with Direct Data Onboarding. + +All node operators, including storage providers, should be aware that ONE pre-migration is being scheduled 120 epochs before the upgrade. It will take around 10-20 minutes for the pre-migration and less than 30 seconds for the final migration, depending on the amount of historical state in the node blockstore and the hardware specs the node is running on. During this time, expect slower block validation times, increased CPU and memory usage, and longer delays for API queries + +We recommend node operators (who haven't enabled splitstore discard mode) that do not care about historical chain states, to prune the chain blockstore by syncing from a snapshot 1-2 days before the upgrade. + +You can test out the migration by running running the [`benchmarking a network migration` tutorial.](https://lotus.filecoin.io/kb/test-migration/) + +For certain node operators, such as full archival nodes or systems that need to keep large amounts of state (RPC providers), completing the pre-migration in time before the network upgrade might not be achievable. For those node operators, it is recommended to skip the pre-migration and run the non-cached migration (i.e., just running the migration at the exact upgrade epoch), and schedule for some downtime during the upgrade epoch. Operators of such nodes can read the [`How to disable premigration in network upgrade` tutorial.](https://lotus.filecoin.io/kb/disable-premigration/) + +## New features +- feat: api: new verified registry methods to get all allocations and claims (#11631) ([filecoin-project/lotus#11631](https://github.com/filecoin-project/lotus/pull/11631)) +- new: add forest bootstrap nodes (#11636) ([filecoin-project/lotus#11636](https://github.com/filecoin-project/lotus/pull/11636)) +- feat: sealing: Support nv22 DDO features in the sealing pipeline (#11226) ([filecoin-project/lotus#11226](https://github.com/filecoin-project/lotus/pull/11226)) +- feat: implement FIP-0063 ([filecoin-project/lotus#11572](https://github.com/filecoin-project/lotus/pull/11572)) +- feat: events: Add Lotus APIs to consume smart contract and built-in actor events ([filecoin-project/lotus#11618](https://github.com/filecoin-project/lotus/pull/11618)) ## Improvements -### Tracing API +## Tracing API Replace the `CodeCid` field in the message trace (added in 1.23.4) with an `InvokedActor` field. @@ -70,8 +112,44 @@ Replace the `CodeCid` field in the message trace (added in 1.23.4) with an `Invo "Subcalls": [], } ``` + This means the trace now contains an accurate "snapshot" of the actor at the time of the call, information that may not be present in the final state-tree (e.g., due to reverts). This will hopefully improve the performance and accuracy of indexing services. +### Ethereum Tracing API (`trace_block` and `trace_replayBlockTransactions`) + +For those with the Ethereum JSON-RPC API enabled, the experimental Ethereum Tracing API has been improved significantly and should be considered "functional". However, it's still new and should be tested extensively before relying on it. This API translates FVM traces to Ethereum-style traces, implementing the OpenEthereum `trace_block` and `trace_replayBlockTransactions` APIs. + +This release fixes numerous bugs with this API and now ABI-encodes non-EVM inputs/outputs as if they were explicit EVM calls to [`handle_filecoin_method`][handlefilecoinmethod] for better block explorer compatibility. + +However, there are some _significant_ limitations: + +1. The Geth APIs are not implemented, only the OpenEthereum (Erigon, etc.) APIs. +2. Block rewards are not (yet) included in the trace. +3. Selfdestruct operations are not included in the trace. +4. EVM smart contract "create" events always specify `0xfe` as the "code" for newly created EVM smart contracts. + +Additionally, Filecoin is not Ethereum no matter how much we try to provide API/tooling compatibility. This API attempts to translate Filecoin semantics into Ethereum semantics as accurately as possible, but it's hardly the best source of data unless you _need_ Filecoin to look like an Ethereum compatible chain. If you're trying to build a new integration with Filecoin, please use the native `StateCompute` method instead. + +[handlefilecoinmethod]: https://fips.filecoin.io/FIPS/fip-0054.html#handlefilecoinmethod-general-handler-for-method-numbers--1024 + +### GetActorEvents and SubscribeActorEvents + +[FIP-0049](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0049.md) introduced _Actor Events_ that can be emitted by user programmed actors. [FIP-0083](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0083.md) introduces new events emitted by the builtin Verified Registry, Miner and Market Actors. These new events for builtin actors are being activated with network version 22 to coincide with _Direct Data Onboarding_ as defined in [FIP-0076](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0076.md) which introduces additional flexibility for data onboarding. Sector, Deal and DataCap lifecycles can be tracked with these events, providing visibility and options for programmatic responses to changes in state. + +Actor events are available on message receipts, but can now be retrieved from a node using the new `GetActorEvents` and `SubscribeActorEvents` methods. These methods allow for querying and subscribing to actor events, respectively. They depend on the Lotus node both collecting events (with `Fevm.Events.RealTimeFilterAPI` and `Fevm.Events.HistoricFilterAPI`) and being enabled with the new configuration option `Events.EnableActorEventsAPI`. Note that a Lotus node can only respond to requests for historic events that it retains in its event store. + +Both `GetActorEvents` and `SubscribeActorEvents` take a filter parameter which can optionally filter events on: + +* `Addresses` of the actor(s) emitting the event +* Specific `Fields` within the event +* `FromHeight` and `ToHeight` to filter events by block height +* `TipSetKey` to restrict events contained within a specific tipset + +`GetActorEvents` provides a one-time query for actor events, while `SubscribeActorEvents` provides a long-lived connection (via websockets) to the Lotus node, allowing for real-time updates on actor events. The subscription can be cancelled by the client at any time. + +### GetAllClaims and GetAllAlocations +Additionally the methods `GetAllAllocations` and `GetAllClaims` has been added to the Lotus API. These methods lists all the available allocations and claims available in the actor state. + ### Lotus CLI The `filplus` commands used for listing allocations and claims have been updated. If no argument is provided to the either command, they will list out all the allocations and claims in the verified registry actor. @@ -103,23 +181,21 @@ OPTIONS: --help, -h show help ``` +## Dependencies +- github.com/filecoin-project/go-state-types (v0.12.8 -> v0.13.0-rc.2) +- chore: deps: update to go-state-types v13.0.0-rc.1 ([filecoin-project/lotus#11662](https://github.com/filecoin-project/lotus/pull/11662)) +- chore: deps: update to go-state-types v13.0.0-rc.2 ([filecoin-project/lotus#11675](https://github.com/filecoin-project/lotus/pull/11675)) +- chore: deps: update to go-multiaddr v0.12.2 (#11602) ([filecoin-project/lotus#11602](https://github.com/filecoin-project/lotus/pull/11602)) +- feat: fvm: update the FVM/FFI to v4.1 (#11608) (#11612) ([filecoin-project/lotus#11612](https://github.com/filecoin-project/lotus/pull/11612)) -### Ethereum Tracing API (`trace_block` and `trace_replayBlockTransactions`) - -For those with the Ethereum JSON-RPC API enabled, the experimental Ethereum Tracing API has been improved significantly and should be considered "functional". However, it's still new and should be tested extensively before relying on it. This API translates FVM traces to Ethereum-style traces, implementing the OpenEthereum `trace_block` and `trace_replayBlockTransactions` APIs. - -This release fixes numerous bugs with this API and now ABI-encodes non-EVM inputs/outputs as if they were explicit EVM calls to [`handle_filecoin_method`][handlefilecoinmethod] for better block explorer compatibility. - -However, there are some _significant_ limitations: - -1. The Geth APIs are not implemented, only the OpenEthereum (Erigon, etc.) APIs. -2. Block rewards are not (yet) included in the trace. -3. Selfdestruct operations are not included in the trace. -4. EVM smart contract "create" events always specify `0xfe` as the "code" for newly created EVM smart contracts. - -Additionally, Filecoin is not Ethereum no matter how much we try to provide API/tooling compatibility. This API attempts to translate Filecoin semantics into Ethereum semantics as accurately as possible, but it's hardly the best source of data unless you _need_ Filecoin to look like an Ethereum compatible chain. If you're trying to build a new integration with Filecoin, please use the native `StateCompute` method instead. - -[handlefilecoinmethod]: https://fips.filecoin.io/FIPS/fip-0054.html#handlefilecoinmethod-general-handler-for-method-numbers--1024 +## Others +- Remove PL operated bootstrap nodes from mainnet.pi ([filecoin-project/lotus#11491](https://github.com/filecoin-project/lotus/pull/11491)) +- Update epoch heights (#11637) ([filecoin-project/lotus#11637](https://github.com/filecoin-project/lotus/pull/11637)) +- chore: Set upgrade heights and change codename ([filecoin-project/lotus#11599](https://github.com/filecoin-project/lotus/pull/11599)) +- chore:: backport #11609 to the feat/nv22 branch (#11644) ([filecoin-project/lotus#11644](https://github.com/filecoin-project/lotus/pull/11644)) +- fix: add UpgradePhoenixHeight to StateGetNetworkParams (#11648) ([filecoin-project/lotus#11648](https://github.com/filecoin-project/lotus/pull/11648)) +- feat: drand quicknet: allow scheduling drand quicknet upgrade before nv22 on 2k devnet ([filecoin-project/lotus#11667]https://github.com/filecoin-project/lotus/pull/11667) +- chore: backport #11632 to release/v1.26.0 ([filecoin-project/lotus#11667](https://github.com/filecoin-project/lotus/pull/11667)) # v1.25.2 / 2024-01-11 diff --git a/build/params_calibnet.go b/build/params_calibnet.go index b2206fa0d..6975adc9f 100644 --- a/build/params_calibnet.go +++ b/build/params_calibnet.go @@ -89,8 +89,8 @@ const UpgradeWatermelonFixHeight = 1070494 // 2023-11-21T13:00:00Z const UpgradeWatermelonFix2Height = 1108174 -// 2024-03-06T14:00:00Z -const UpgradeDragonHeight = 1413574 +// 2024-03-11T14:00:00Z +const UpgradeDragonHeight = 1427974 // This epoch, 120 epochs after the "rest" of the nv22 upgrade, is when we switch to Drand quicknet const UpgradePhoenixHeight = UpgradeDragonHeight + 120 diff --git a/build/params_mainnet.go b/build/params_mainnet.go index 51cb51ce3..c3c1b131b 100644 --- a/build/params_mainnet.go +++ b/build/params_mainnet.go @@ -99,8 +99,8 @@ const UpgradeThunderHeight = UpgradeLightningHeight + 2880*21 // 2023-12-12T13:30:00Z const UpgradeWatermelonHeight = 3469380 -// 2024-04-02T14:00:00Z -var UpgradeDragonHeight = abi.ChainEpoch(3792000) +// 2024-04-02T14:00:00Z - Epoch will be updated in final release +var UpgradeDragonHeight = abi.ChainEpoch(999999999999999) // This epoch, 120 epochs after the "rest" of the nv22 upgrade, is when we switch to Drand quicknet // 2024-04-02T15:00:00Z diff --git a/build/version.go b/build/version.go index 6ec1ecd7a..17240166e 100644 --- a/build/version.go +++ b/build/version.go @@ -37,7 +37,7 @@ func BuildTypeString() string { } // BuildVersion is the local build version -const BuildVersion = "1.25.3-dev" +const BuildVersion = "1.26.0-rc1" func UserVersion() string { if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" { diff --git a/documentation/en/cli-lotus-miner.md b/documentation/en/cli-lotus-miner.md index dbc5a6ee2..0e4e41838 100644 --- a/documentation/en/cli-lotus-miner.md +++ b/documentation/en/cli-lotus-miner.md @@ -7,7 +7,7 @@ USAGE: lotus-miner [global options] command [command options] [arguments...] VERSION: - 1.25.3-dev + 1.26.0-rc1 COMMANDS: init Initialize a lotus miner repo diff --git a/documentation/en/cli-lotus-provider.md b/documentation/en/cli-lotus-provider.md index de77697e3..2da746b66 100644 --- a/documentation/en/cli-lotus-provider.md +++ b/documentation/en/cli-lotus-provider.md @@ -7,7 +7,7 @@ USAGE: lotus-provider [global options] command [command options] [arguments...] VERSION: - 1.25.3-dev + 1.26.0-rc1 COMMANDS: run Start a lotus provider process diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index 0e0fee157..12f6731ea 100644 --- a/documentation/en/cli-lotus-worker.md +++ b/documentation/en/cli-lotus-worker.md @@ -7,7 +7,7 @@ USAGE: lotus-worker [global options] command [command options] [arguments...] VERSION: - 1.25.3-dev + 1.26.0-rc1 COMMANDS: run Start lotus worker diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index 96f56642b..18fa61f16 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -7,7 +7,7 @@ USAGE: lotus [global options] command [command options] [arguments...] VERSION: - 1.25.3-dev + 1.26.0-rc1 COMMANDS: daemon Start a lotus daemon process From b78aebe1f5cd26eb9fc667caae8b916b36756e64 Mon Sep 17 00:00:00 2001 From: Phi-rjan Date: Tue, 5 Mar 2024 10:50:29 +0100 Subject: [PATCH 2/3] Update CHANGELOG.md Co-authored-by: Masih H. Derkani --- CHANGELOG.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef279974a..16e76b2c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,14 +30,14 @@ Actor Version: 13 Manifest CID: bafy2bzacea4firkyvt2zzdwqjrws5pyeluaesh6uaid246tommayr4337xpmi Actor CID -account bafk2bzaceb3j36ri5y5mfklgp5emlvrms6g4733ss2j3l7jismrxq6ng3tcc6 -cron bafk2bzaceaz6rocamdxehgpwcbku6wlapwpgzyyvkrploj66mlqptsulf52bs -datacap bafk2bzacea22nv5g3yngpxvonqfj4r2nkfk64y6yw2malicm7odk77x7zuads -eam bafk2bzaceatqtjzj7623i426noaslouvluhz6e3md3vvquqzku5qj3532uaxg -ethaccount bafk2bzacean3hs7ga5csw6g3uu7watxfnqv5uvxviebn3ba6vg4sagwdur5pu -evm bafk2bzacec5ibmbtzuzjgwjmksm2n6zfq3gkicxqywwu7tsscqgdzajpfctxk -init bafk2bzaced5sq72oemz6qwi6yssxwlos2g54zfprslrx5qfhhx2vlgsbvdpcs -multisig bafk2bzacedbgei6jkx36fwdgvoohce4aghvpohqdhoco7p4thszgssms7olv2 +account bafk2bzaceb3j36ri5y5mfklgp5emlvrms6g4733ss2j3l7jismrxq6ng3tcc6 +cron bafk2bzaceaz6rocamdxehgpwcbku6wlapwpgzyyvkrploj66mlqptsulf52bs +datacap bafk2bzacea22nv5g3yngpxvonqfj4r2nkfk64y6yw2malicm7odk77x7zuads +eam bafk2bzaceatqtjzj7623i426noaslouvluhz6e3md3vvquqzku5qj3532uaxg +ethaccount bafk2bzacean3hs7ga5csw6g3uu7watxfnqv5uvxviebn3ba6vg4sagwdur5pu +evm bafk2bzacec5ibmbtzuzjgwjmksm2n6zfq3gkicxqywwu7tsscqgdzajpfctxk +init bafk2bzaced5sq72oemz6qwi6yssxwlos2g54zfprslrx5qfhhx2vlgsbvdpcs +multisig bafk2bzacedbgei6jkx36fwdgvoohce4aghvpohqdhoco7p4thszgssms7olv2 paymentchannel bafk2bzaceasmgmfsi4mjanxlowsub65fmevhzky4toeqbtw4kp6tmu4kxjpgq placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro reward bafk2bzacedjyp6ll5ez27dfgldjj4tntxfvyp4pa5zkk7s5uhipzqjyx2gmuc From 2d1fa77dd974843e42397c8ab9bfde5b27bf8576 Mon Sep 17 00:00:00 2001 From: Phi Date: Tue, 5 Mar 2024 11:20:58 +0100 Subject: [PATCH 3/3] Make gen Make gen --- build/openrpc/full.json.gz | Bin 35937 -> 35937 bytes build/openrpc/gateway.json.gz | Bin 12141 -> 12141 bytes build/openrpc/miner.json.gz | Bin 16483 -> 16483 bytes build/openrpc/worker.json.gz | Bin 6051 -> 6051 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index deaef44c05a30e8aaadd8b720712bbb7e6198239..44f5bf87a697a1ad5e41f53061f40bb3aeb216d0 100644 GIT binary patch delta 29 ncmV+&0OJ4Qm;&LL0+5CW+Z%(|p|jbsjm(P(=g{=d)*S}`?9>mT delta 29 lcmaDjgX!T6rU`BA`DSkGV@vLC>^;-XQF;32`)ji73;@(B4gUZD diff --git a/build/openrpc/gateway.json.gz b/build/openrpc/gateway.json.gz index dd9fe19c55ab15181e499d28c79d5a16d5c92d5d..5e5ed4ad097aee9b7197a05ac26cdc13a393afdd 100644 GIT binary patch delta 27 jcmaDG_cm@qBm0}2()+)|&Ts6vtH&|%|HQYP)0h|l-5(Bi delta 27 jcmaDG_cm@qBYRFh@4ed}&TZ_ttH;6J*0`K=8WRHm$+8Tz diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index 251e51cc9822430ed1821acf57af6d781c729f2d..44c53f98b49d8b1807fc517cd688ee267ae95cdc 100644 GIT binary patch literal 16483 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