Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: merge release/v1.20.0 into master #10308

Merged
merged 34 commits into from
Feb 20, 2023
Merged
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
6a90d32
chore: add v1.20.0-rc1 changelog (#10273)
jennijuju Feb 15, 2023
4f259d8
Revert "Standardize path variable"
arajasek Feb 15, 2023
2dd2edc
Merge pull request #10280 from filecoin-project/asr/fix-shed
magik6k Feb 15, 2023
1d0a524
feat: EthAPI: Add EthAddressToFilecoinAddress
arajasek Feb 15, 2023
3e678f2
support network name overrides in pack to build releases
snissn Feb 16, 2023
16b7d45
lintfix
snissn Feb 16, 2023
a2b996e
Merge pull request #10286 from filecoin-project/asr/eth-address-api
arajasek Feb 16, 2023
ea03e1b
only override the correct version for bundle gen
snissn Feb 16, 2023
0f6cbf1
include the version that pack is running on for filtering the build g…
snissn Feb 16, 2023
5854d72
fix: eth: correctly decode EthGetStorageAt output (#10284)
Stebalien Feb 17, 2023
b2610be
change rpc types from uint to hash to match fevm implementation
snissn Feb 17, 2023
00b6d06
feat: eth: parse revert data (#10295)
Stebalien Feb 17, 2023
ccdb447
avoid actor not found
jennijuju Feb 17, 2023
f2648ad
fix import
jennijuju Feb 17, 2023
59db4ee
fix gen
jennijuju Feb 17, 2023
d589443
feat: EthApiTest: Confirm EthAddressToFilecoinAddress works without E…
arajasek Feb 17, 2023
2d3065a
chore: all: bump go-libipfs to replace go-block-format
Jorropo Jan 26, 2023
7a4205a
chore: node: migrate go-bitswap to go-libipfs/bitswap
Jorropo Jan 27, 2023
198217d
chore: all: bump go-libipfs to v0.4.1
Jorropo Feb 17, 2023
dbcf304
clean up comment remove print
snissn Feb 17, 2023
30615a4
feat: eth: return revert data on failed gas estimation (#10298)
Stebalien Feb 17, 2023
a3bc65b
fix: eth: return the correct nonce from EthGetTransactionCount
Stebalien Feb 17, 2023
4dedced
lintfix
snissn Feb 17, 2023
f41435d
feat: bundle: only write git tags for newly packed bundles
arajasek Feb 17, 2023
49cd428
nit: put evm case in a block
Stebalien Feb 17, 2023
6c0f4cb
nit: actually, don't use blocks
Stebalien Feb 17, 2023
7a35a73
Merge pull request #10294 from filecoin-project/mikers/buildReleaseOv…
arajasek Feb 17, 2023
258df76
Merge pull request #10305 from filecoin-project/asr/bump-go-libipfs-f…
arajasek Feb 17, 2023
efcdec6
Merge pull request #10300 from filecoin-project/steb/fix-eth-nonce
arajasek Feb 17, 2023
1050061
Merge pull request #10297 from filecoin-project/mikers/itests/flakyRP…
arajasek Feb 17, 2023
e17d4f1
Merge pull request #10299 from filecoin-project/jen/disappearedcode
arajasek Feb 17, 2023
bad41c2
fix: eth: cleanup error cases
Stebalien Feb 17, 2023
e3e78f1
Merge pull request #10306 from filecoin-project/steb/error-cleanup
arajasek Feb 17, 2023
984b4c7
Merge branch 'release/v1.20.0' into asr/merge-release-into-master
arajasek Feb 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
chore: add v1.20.0-rc1 changelog (#10273)
* add v1.20.0-rc1 changelog



Co-authored-by: Aayush Rajasekaran <arajasek94@gmail.com>
  • Loading branch information
jennijuju and arajasek committed Feb 15, 2023
commit 6a90d328856a8f81340cf7c545a3c72b9f8695a7
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,55 @@
# Lotus changelog

# 1.20.0-rc1 / 2023-02-14

This is the first release candidate for the upcoming MANDATORY 1.20.0 release of Lotus. This release will deliver the Hygge network upgrade, introducing Filecoin network version 18. The centerpiece of the upgrade is the introduction of the [Filecoin Virtual Machine (FVM)’s Milestone 2.1](https://fvm.filecoin.io/), which will allow for EVM-compatible contracts to be deployed on the Filecoin network. This upgrade delivers user-programmablity to the Filecoin network for the first time!

Note that this release candidate does NOT set the epoch at which mainnet will upgrade; that detail will be finalized in the 1.20.0 release.

The Hygge upgrade introduces the following Filecoin Improvement Proposals (FIPs), delivered in FVM3 (see FVM [v3.0.0-rc.1](https://github.com/filecoin-project/ref-fvm/pull/1664)) and builtin-actors v10 (see actors [v1.10.0-rc.1](https://github.com/filecoin-project/builtin-actors/releases/tag/v10.0.0-rc.1)):

- [FIP-0048](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0048.md): f4 Address Class
- [FIP-0049](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0049.md): Actor events
- [FIP-0050](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0050.md): API between user-programmed actors and built-in actors
- [FIP-0054](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0054.md): Filecoin EVM runtime (FEVM)
- [FIP-0055](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0055.md): Supporting Ethereum Accounts, Addresses, and Transactions
- [FIP-0057](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0057.md): Update gas charging schedule and system limits for FEVM

## Filecoin Ethereum Virtual Machine (FEVM)

The Filecoin Ethereum Virtual Machine (FEVM) is built on top of the WASM-based execution environment introduced in the Skyr v16 upgrade. The chief feature introduced is the ability for anyone participating in the Filecoin network to deploy their own EVM-compatible contracts onto the blockchain, and invoke them as appropriate.

## New Built-in Actors

The FEVM is principally delivered through the introduction of **the new [EVM actor](https://github.com/filecoin-project/builtin-actors/tree/master/actors/evm)**. This actor “represents” smart contracts on the Filecoin network, and includes an interpreter that implements all EVM opcodes as their Filecoin equivalents, and translates state I/O operations to be compatible with Filecoin’s IPLD-based data model. For more on the EVM actors, please see [FIP-0054](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0054.md).

The creation of EVM actors is managed by **the new** [Ethereum Address Manager actor (EAM)](https://github.com/filecoin-project/builtin-actors/tree/master/actors/eam), a singleton that is invoked in order to deploy EVM actors. In order to make usage of the FEVM as seamless as possible for users familiar with the Ethereum ecosystem, this upgrades also introduces **a dedicated actor to serve as “[Ethereum Accounts](https://github.com/filecoin-project/builtin-actors/tree/master/actors/ethaccount)”**. This actor exists to allow for secp keys to be used in the Ethereum addressing scheme. **The last new built-in actor introduced is [the Placeholder actor](https://github.com/filecoin-project/builtin-actors/tree/master/actors/placeholder)**, a thin “shell” of an actor that can transform into either EVM or EthAccount actors. For more on the EAM, EthAccount, and Placeholder actors, please see [FIP-0055](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0055.md).

## Calibration nv18 Hygge Upgrade

This release candidate sets the calibration-net nv18 Hygge upgrade at epoch 322354, 22023-02-21T16:30:00Z. The bundle the network will be using is [v10.0.0 actors](https://github.com/filecoin-project/builtin-actors/releases/tag/v10.0.0-rc.1)
(located at `build/actors/v10.tar.zst`) upon/post migration, manifest CID `bafy2bzaced25ta3j6ygs34roprilbtb3f6mxifyfnm7z7ndquaruxzdq3y7lo`.

## Node Operators

FVM has been running in lotus since v1.16.0 and up, and the new FEVM does not increase any node hardware spec requirement.

With FEVM on Filecoin, we aim to provide full compatibility with the existing EVM ecosystem and its tooling out of box and thus, lotus now provides a full set of [Ethereum-styled APIs](https://github.com/filecoin-project/lotus/blob/release/v1.20.0/node/impl/full/eth.go) for developers and token holders to interact with the Filecoin network as well.

**Enable Ethereum JSON RPC API**

Note that Ethereum APIs are only supported in the lotus v1 API, meaning that any node operator who wants to enable Eth API services must be using the v1 API, instead of the v0 API. To enable Eth RPC, simply set `EnableEthRPC` to `true` in your node config.toml file; or set env var `LOTUS_FEVM_ENABLEETHRPC` to `1` before starting your lotus node.

**Eth tx hash and Filecoin message CID**

Most of the Eth APIs take Eth accounts and tx has as an input, and they start with `0x` , and that is what Ethereum tooling support. However, in Filecoin, we have Filecoin account formats where things start with `f` (`f410` specifically for eth accounts on Filecoin) and the messages are in the format of CIDs. To enable a smooth developer experience, Lotus internally converts between Ethereum address and Filecoin account address as needed. In addition, lotus also keeps a Eth tx hash <> Filecoin message CID map and stores them in a SQLite database as node sees a FEVM messages. The database is initiated and the maps are populated automatically in `~/<lotus_repo>/sqlite/txhash.db` for any node that as Eth RPC enabled. Node operators can configure how many historical mappings they wanna store by configuring `EthTxHashMappingLifetimeDays` .

**Events***

[FIP-0049 introduces actor events](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0049.md) that can be emitted and externally observable during message execution. An `events.db` is created automatically under `~/<lotus_repo>/sqlite` to store these events if the node has Eth RPC enabled. Node operators can configure the events support base on their needs by configuration `Events` configurations.

Note: All three features are new and we welcome user feedbacks, create an issue if you have any enhancements that you’d like to see!

# 1.19.0 / 2022-12-07

This is an optional feature release of Lotus. This feature release includes the SplitStore beta, the experimental Lotus node cluster feature, as well as numerous enhancments and bugfixes.
Expand Down