github filecoin-project/lotus v1.29.0

2 months ago

This is a Lotus Node only release, which includes a variety of new features, improvements, and fixes, particularly focused on enhancing ETH RPC functionality. Key highlights of this release include:

  • New Features:

    • Trace Filter API: Added support for the trace_filter RPC method, allowing users to configure EthTraceFilterMaxResults to limit the number of results returned in any individual trace_filter RPC API call. (filecoin-project/lotus#12123)
    • Filecoin to ETH Address Conversion: The FilecoinAddressToEthAddress RPC can now return ETH addresses for all Filecoin address types ("f0"/"f1"/"f2"/"f3") based on the client's re-org tolerance. Note that this is a breaking change if you are using the API via the go-jsonrpc library or by using Lotus as a library, but it is non-breaking when using the API via any other RPC method as it adds an optional second argument. (filecoin-project/lotus#12324)
    • Sending to ETH addresses The lotus send command now supports sending to ETH address recipients. (filecoin-project/lotus#12319)
  • Improvements:

    • Gateway Enhancements: Significant improvements to the lotus-gateway including better rate limiting and stateful handling. The --per-conn-rate-limit now works as advertised, and a new --eth-max-filters-per-conn option allows setting the maximum number of filters and subscriptions per connection, defaulting to 16. Stateful Ethereum APIs are now disabled for plain HTTP connections and require websockets. Additionally, the default value for the Events.FilterTTL config option has been reduced from 24h to 1h. (filecoin-project/lotus#12315)
    • Performance Improvements: Addressed SQLite index selection performance regressions, significantly improving query times for event-related data. (filecoin-project/lotus#12261).

☢️ Upgrade Warnings ☢️

  • lotus-gateway behaviour, CLI-arguments and APIs have received minor changes. See the improvements section in the Organised Changelog section below for more information.
  • The FilecoinAddressToEthAddress RPC introduces a breaking change for users of the go-jsonrpc library or Lotus as a library.
  • We are aware that legacy/historical Drand lookups via StateGetBeaconEntry are currently broken. If you rely on StateGetBeaconEntry for looking up historic beacons, we recommend waiting for the Lotus v1.29.1 release. You can follow the progress on this issue in #12414.

📝 Changelog

See v1.28.2...release/v1.29.0 for the set of changes since the last release.

Organized Changelog

New features

  • feat: Add trace filter API supporting RPC method trace_filter (filecoin-project/lotus#12123). Configuring EthTraceFilterMaxResults sets a limit on how many results are returned in any individual trace_filter RPC API call.
  • feat: FilecoinAddressToEthAddress RPC can now return ETH addresses for all Filecoin address types ("f0"/"f1"/"f2"/"f3") based on client's re-org tolerance. This is a breaking change if you are using the API via the go-jsonrpc library or by using Lotus as a library, but is a non-breaking change when using the API via any other RPC method as it adds an optional second argument.
    (filecoin-project/lotus#12324).
  • feat: Added lotus-shed indexes inspect-events health-check command (filecoin-project/lotus#12346).
  • feat(libp2p): expose libp2p bandwidth metrics (#12402) (filecoin-project/lotus#12402)
  • feat: Lotus Send CLI: Lotus send should work with ETH address receipients (#12319)

Improvements

  • feat!: gateway: fix rate limiting, better stateful handling (filecoin-project/lotus#12327).
    • CLI usage documentation has been improved for lotus-gateway
    • --per-conn-rate-limit now works as advertised.
    • --eth-max-filters-per-conn is new and allows you to set the maximum number of filters and subscription per connection, it defaults to 16.
      • Previously, this limit was set to 16 and applied separately to filters and subscriptions. This limit is now unified and applies to both filters and subscriptions.
    • Stateful Ethereum APIs (those involving filters and subscriptions) are now disabled for plain HTTP connections. A client must be using websockets to access these APIs.
      • These APIs are also now automatically removed from the node by the gateway when a client disconnects.
    • Some APIs have changed which may impact users consuming Lotus Gateway code as a library.
    • The default value for the Events.FilterTTL config option has been reduced from 24h to 1h. This means that filters will expire on a Lotus node after 1 hour of not being accessed by the client.
  • feat: f3: override F3BootstrapEpoch on 2k devnet with environment variable (#12354) (filecoin-project/lotus#12354)
  • feat: p2p: allow overriding bootstrap nodes with environmemnt variable (#12292) (filecoin-project/lotus#12292)
  • feat(f3): F3 has been updated with many performance improvements and additional metrics.
  • fix: Eth Event Receipt Logs: use event index for logs (#12269) (filecoin-project/lotus#12269)
  • fix: add datacap balance to circ supply internal accounting as unCirc (#12348) (filecoin-project/lotus#12348)
  • feat: Use a block cache to speed up the EthGetBlockByHash API (#12359) (filecoin-project/lotus#12359)
  • fix: lotus-shed: store processed tipset after backfilling events (#12335) (filecoin-project/lotus#12335)
  • fix: Eth Tx Events Bloom Filter: fix slice modification bug and flaky test (#12203) (filecoin-project/lotus#12203)
  • fix(ETH RPC): receipts: use correct txtype in receipts (#12332) (filecoin-project/lotus#12332
  • fix(cli): only change method for 0x recipients (#12328) (filecoin-project/lotus#12328)
  • feat: api: clean API for Miners (#12112) (filecoin-project/lotus#12112)
  • feat: p2p: environment variables for disabling DHT query filter and routing table filter (#12289) (filecoin-project/lotus#12289)
  • fix: cli: Add delegated to cli docs (#12229) (filecoin-project/lotus#12229)
  • feat: sqlite: extract common init and migration utilities (#12098) (filecoin-project/lotus#12098)
  • feat: niporep: multi-sector onboarding through UnmanagedMiner (#12180) (filecoin-project/lotus#12180)

Dependencies

From v1.28.2...release/v1.29.0#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6

  • github.com/filecoin-project/go-commp-utils (v0.1.3 -> v0.1.4):
  • github.com/filecoin-project/go-commp-utils/nonffi (v0.0.0-20220905160352-62059082a837 -> v0.0.0-20240802040721-2a04ffc8ffe8):
  • github.com/filecoin-project/go-hamt-ipld/v3 (v3.1.0 -> v3.4.0):
  • github.com/filecoin-project/go-jsonrpc (v0.3.2 -> v0.6.0):
  • github.com/filecoin-project/jackc/pgx (v5.4.1 -> v5.6.0)
  • feat(f3): update from v0.0.7 to v0.1.0 (#12382) (filecoin-project/lotus#12382)
  • feat: f3: update go-f3 to 0.2.0 (#12390) (filecoin-project/lotus#12390)

Chores

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Rod Vagg 45 +4839/-2634 217
Peter Rabbitson 18 +2503/-2195 209
Jakub Sztandera 5 +2695/-1074 61
Mikers 1 +1274/-455 23
Masih H. Derkani 7 +873/-682 37
Andrew Jackson (Ajax) 3 +732/-504 75
LexLuthr 3 +167/-996 8
Piotr Galar 6 +622/-372 15
Aarsh Shah 11 +791/-177 44
Phi-rjan 15 +476/-178 50
web3-bot 32 +330/-319 39
Steven Allen 8 +367/-165 41
aarshkshah1992 17 +379/-87 32
Frrist 1 +403/-22 5
Łukasz Magiera 4 +266/-27 13
winniehere 1 +146/-144 3
Steve Loeppky 5 +162/-53 7
Aryan Tikarya 2 +183/-8 7
adlrocha 2 +123/-38 21
Jiaying Wang 7 +52/-68 9
Ian Davis 2 +60/-38 5
Aayush Rajasekaran 1 +80/-2 2
hanabi1224 4 +46/-4 5
Laurent Senta 1 +44/-1 2
jennijuju 6 +21/-20 17
Brendan O'Brien 1 +25/-10 2
Jennifer Wang 4 +24/-8 6
dependabot[bot] 4 +15/-15 8
riskrose 1 +8/-8 7
Phi 1 +6/-6 6
linghuying 1 +5/-5 5
fsgerse 2 +3/-7 3
PolyMa 1 +5/-5 5
zhangguanzhang 1 +3/-3 2
luozexuan 1 +3/-3 3
Po-Chun Chang 1 +6/-0 2
Kevin Martin 1 +4/-1 2
simlecode 1 +2/-2 2
ZenGround0 1 +2/-2 2
GFZRZK 1 +2/-1 1
zl 1 +1/-1 1
qwdsds 1 +1/-1 1
Elias Rad 1 +1/-1 1

Don't miss a new lotus release

NewReleases is sending notifications on new releases.