Skip to content
This repository has been archived by the owner on Jul 24, 2023. It is now read-only.

Lotus Release Handoff: v1.20.0-hyperspace-nv20 #9

Open
jennijuju opened this issue Feb 14, 2023 · 0 comments
Open

Lotus Release Handoff: v1.20.0-hyperspace-nv20 #9

jennijuju opened this issue Feb 14, 2023 · 0 comments

Comments

@jennijuju
Copy link
Member

jennijuju commented Feb 14, 2023

Request

Please update Hyperspace nodes with the following Lotus release!
**The network will perform a light upgrade at epoch 87480, 2023-02-15T15:00:00.

Git reference

Branch: https://github.com/filecoin-project/lotus/tree/ntwk/hyperspace
Lotus tag: v1.20.0-hyperspace-nv20
Builtin Actor: hyperspace/v10.0.0-rc.2

This is a MANDATORY release for the upcoming Hyperspace nv20 upgrade. The upgrade epoch is set at 87480, 2023-02-15T15:00:00Z, all node operators need to update your Hyperspace node to this tag before then. This release includes the fvm-v3-rc1, actor v10 bundle, a bunch of bug fixes and Eth RPC improvements.

Highlights:

Node operators

Event Index migration

  • This release implements the final version of FIP-0049 (Actor Events) and FIP-0054 (EVM runtime). These involve changes in the event schema, internal event entry key names (topic{1..4} => t{1..4}, data => d), value padding, and flags.
  • Calls to eth_getLogs, as well as Eth subscriptions and Eth filters, are served through the event index (sqlite database under your Lotus repo).
  • Upon starting this version, a migration will kick off from v1 to v2 of the event index database. It should take less than a minute (usually a few seconds).
  • This migration enables both backwards compatibility and forward compatibility. Queries for past Eth logs will continue to work, as will queries for future Eth logs.
  • Look out for logs like this soon after starting and confirm that the final statement is one signalling competition and success:
2023-02-12T14:30:00.658Z	WARN	event_index	filter/index.go:431	[migration v1=>v2] event_entry table schema updated
2023-02-12T14:30:00.660Z	WARN	event_index	filter/index.go:437	[migration v1=>v2] updated event entries with codec=0x55	{"affected": 5315}
2023-02-12T14:30:00.662Z	WARN	event_index	filter/index.go:454	[migration v1=>v2] rewrote entry keys	{"from": "topic1", "to": "t1", "affected": 1715}
2023-02-12T14:30:00.664Z	WARN	event_index	filter/index.go:454	[migration v1=>v2] rewrote entry keys	{"from": "topic2", "to": "t2", "affected": 1181}
2023-02-12T14:30:00.665Z	WARN	event_index	filter/index.go:454	[migration v1=>v2] rewrote entry keys	{"from": "topic3", "to": "t3", "affected": 887}
2023-02-12T14:30:00.666Z	WARN	event_index	filter/index.go:454	[migration v1=>v2] rewrote entry keys	{"from": "topic4", "to": "t4", "affected": 225}
2023-02-12T14:30:00.667Z	WARN	event_index	filter/index.go:454	[migration v1=>v2] rewrote entry keys	{"from": "data", "to": "d", "affected": 1307}
2023-02-12T14:30:00.668Z	WARN	event_index	filter/index.go:463	[migration v1=>v2] processing values
2023-02-12T14:30:00.794Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 500}
2023-02-12T14:30:00.902Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 1000}
2023-02-12T14:30:01.009Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 1500}
2023-02-12T14:30:01.115Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 2000}
2023-02-12T14:30:01.221Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 2500}
2023-02-12T14:30:01.327Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 3000}
2023-02-12T14:30:01.431Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 3500}
2023-02-12T14:30:01.535Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 4000}
2023-02-12T14:30:01.638Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 4500}
2023-02-12T14:30:01.742Z	WARN	event_index	filter/index.go:504	[migration v1=>v2] processed values	{"count": 5000}
2023-02-12T14:30:01.807Z	WARN	event_index	filter/index.go:508	[migration v1=>v2] processed all values	{"count": 5315}
2023-02-12T14:30:01.807Z	WARN	event_index	filter/index.go:514	[migration v1=>v2] dropped temporary table
2023-02-12T14:30:01.807Z	WARN	event_index	filter/index.go:520	[migration v1=>v2] schema version updated to v2
2023-02-12T14:30:01.808Z	WARN	event_index	filter/index.go:526	[migration v1=>v2] transaction committed; ALL DONE

Developers

  • The GranularityExported method in the Datacap actor was renamed to Granularity. Any contracts which use the FRC42 hash of GranularityExported which is 953701584 must be changed to use 3936767397 and redeployed.
  • Any contracts sending funds to actors that are not native accounts (f1, f3), Ethereum accounts, or EVM smart contracts must use the call_actor precompile. Solidity's transfer function will no longer work as that will attempt to invoke the target actor as an EVM contract.
  • All contracts interacting with built-in actors MUST upgrade to the latest version of Filecoin Solidity library. The IPLD codec used in the handle_filecoin_method solidity entrypoint and the call_actor should now be CBOR (0x51) not DAG_CBOR (0x71) as previously used. The underlying encoding (i.e. payload bytes) is the same, but the codec numbers are different. DAG_CBOR support will be re-enabled in the future but the usage of the codec implies additional runtime guarantees that have not yet been implemented.
  • Developers must:
    • Accept both DAG_CBOR (0x71) and CBOR (0x51) in inputs and treat them identically. Specifically, developers should:
      • Treat DAG_CBOR and CBOR as equivalent when returned from the call_actor precompile.
      • Treat DAG_CBOR and CBOR as equivalent when received as a parameter to handle_filecoin_method.
    • Use CBOR (0x51) in outputs. Specifically, developers should:
      • Always pass CBOR to the call_actor precompile. DAG_CBOR is currently forbidden.
      • Always return CBOR from handle_filecoin_method. DAG_CBOR is currently forbidden.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant