Commit Graph
638 Commits
Author SHA1 Message Date
Steven Allen dbbcf4b2ee feat: vm: switch to the new exec trace format (#10372)
This is now "FVM" native. Changes include:

1. Don't treat "trace" messages like off-chain messages. E.g., don't
include CIDs, versions, etc.
2. Include IPLD codecs where applicable.
3. Remove fields that aren't filled by the FVM (timing, some errors,
code locations, etc.).
2023-03-01 16:02:18 -08:00
Aayush 63b03a48d0 Merge branch 'release/v1.20.0' into asr/merge-release-into-master 2023-02-10 18:39:51 -05:00
Steven AllenandRaúl Kripalani 80fccba93f fix: gas: update ffi & correct the message inclusion cost in nv18 (#10228)
Co-authored-by: Raúl Kripalani <raul@protocol.ai>
2023-02-10 12:48:20 +00:00
Steven Allen a83f120f32 fix: chain: make sure the head is empty, not the code 2023-02-09 11:36:02 -08:00
Aayush f291572b4a Merge branch 'release/v1.20.0' into asr/merge-release-into-master 2023-02-03 09:27:04 -05:00
raulk b46258d0bf feat: evm: align events implementation with FIP-0049 and FIP-0054. (#10152)
- Event keys are now t1, t2, t3, t4 for topics; and d for data.
- ref-fvm no longer stores events in the blockstore for us. It just
  returns events to the client, who is now responsible for handling
  them as it wishes / according to its configuration.
- Add a flag to VMOpts to have the events AMT be written in the blockstore.
- Add a flag to the ChainStore to advertise to the rest of the system
  if the ChainStore is storing events.
- Enable that flag if the EthRPC is enabled (can also add an explicit
  configuration flag if wanted).
2023-02-02 19:10:30 -08:00
Jorropo f572852d06 chore: all: bump go-libipfs to replace go-block-format
Includes changes from:
- https://github.com/ipfs/go-block-format/pull/37
- https://github.com/ipfs/go-libipfs/pull/58
2023-01-26 17:03:18 +01:00
Aayush 8842b21ec9 feat: vm: Assert empty object CID when dumping state 2023-01-25 12:35:18 -05:00
+6 cdf3812e40 NV18: Filecoin EVM runtime + Actor Events + EthAccount + EAM + f4 addressing (#9998)
Co-authored-by: Steven Allen <steven@stebalien.com>
Co-authored-by: Raul Kripalani <raulk@users.noreply.github.com>
Co-authored-by: Kevin Li <ychiaoli18@users.noreply.github.com>
Co-authored-by: vyzo <vyzo@hackzen.org>
Co-authored-by: Ian Davis <nospam@iandavis.com>
Co-authored-by: Aayush Rajasekaran <arajasek94@gmail.com>
Co-authored-by: Jiaying Wang <42981373+jennijuju@users.noreply.github.com>
Co-authored-by: Jennifer Wang <jiayingw703@gmail.com>
Co-authored-by: Geoff Stuart <geoff.vball@gmail.com>
Co-authored-by: Shrenuj Bansal <shrenuj.bansal@protocol.ai>
Co-authored-by: Shrenuj Bansal <108157875+shrenujbansal@users.noreply.github.com>
Co-authored-by: Geoff Stuart <geoffrey.stuart@protocol.ai>
Co-authored-by: Aayush Rajasekaran <aayushrajasekaran@Aayushs-MacBook-Pro.local>
Co-authored-by: ZenGround0 <5515260+ZenGround0@users.noreply.github.com>
Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com>
2023-01-13 19:11:13 +00:00
Aayush 28b4ebd52b chore: VM: don't export Extern::VerifyBlockSig 2022-12-16 16:54:09 -05:00
Geoff Stuart ae4010ffb6 Drop actor keys from chain/actors/manifest.go 2022-12-13 18:02:34 -05:00
Geoff Stuart e1926a06e8 Use abi.MethodNum instead of uint64 for method nums 2022-12-13 12:29:31 -05:00
Steven Allen 2651a38f89 Merge branch 'master' into feat/nv18 2022-11-22 10:08:54 -08:00
Steven AllenandKevin Li e78d1306ee feat: fvm: add support for looking up past tipset CIDs (#9687)
* feat: add support for generating tipset CIDs

(cherry-picked from feat/nv18-fevm)

* feat: fvm: add support for looking up past tipset CIDs

We do this by adding yet another "getter" to the VM that resolves an
epoch into a TipSetKey.

Co-authored-by: Kevin Li <ychiaoli18@users.noreply.github.com>
2022-11-22 12:41:03 -05:00
vyzo 0b6d1ad20b set predictable address when creating account actors 2022-11-09 11:15:16 +02:00
Steven Allen c6f2710e1c feat: future proof against new address protocols
This lets us add new address protocols to go-address without implicitly
accepting them in messages on the network.
2022-11-08 12:28:23 -08:00
Steven Allen 8df5b81f24 fix: make test vector extraction work with the FVM
This also ignores the VM "Flush" option and instead, flushes
unconditionally (in the FVM):

1. In the FVM, we don't read blocks on flush (ever).
2. All _uses_ of TVX use a "proxy" blockstore that buffers writes, so
nothing should actually get flushed to lotus.
2022-11-07 16:09:44 -05:00
Aayush c0b7343e60 Merge branch 'release/v1.18.0' into asr/merge-release-into-master 2022-11-06 14:40:13 -05:00
Aayush 13b59c9c23 Invoker: Use MethodMeta from go-state-types 2022-10-19 15:53:26 -04:00
Geoff Stuart cdd7f26fb3 Allow setting local bundles for Debug FVM for av 9+ 2022-10-18 12:48:24 -04:00
Geoff Stuart 37be57610c feat: actors: Integrate datacap actor into lotus (#9348)
* Integrate datacap actor

* Implement datacap actor in chain/builtin
2022-09-21 15:51:28 -04:00
Geoff Stuart 94add978b0 chore: actors: Allow builtin-actors to return a map of methods (#9342)
* Allow builtin-actors to return a map of methods

* go mod

* Fix tests

* Fix tests, check carefully please
2022-09-21 10:56:58 -04:00
Łukasz Magiera 9be712de99 deps: Use latest cbor-gen 2022-09-20 17:30:07 +02:00
Aayush c0bbaebaf4 more fixes 2022-09-09 21:40:15 -04:00
Aayush 92cc24fca2 support fvm gas tracing 2022-09-09 21:40:15 -04:00
Aayush e9a3235291 more fixes 2022-09-09 21:40:15 -04:00
Geoff Stuart 642555d0fb Fix discrepancies, run fiximports 2022-09-09 21:40:15 -04:00
Aayush 0efca4d266 introduce v9 actors and nv17 2022-09-09 21:40:15 -04:00
Łukasz Magiera 08b22edd89 fix make gen 2022-08-29 16:25:30 +02:00
Aayush 9812792d46 fix: verifreg: serialize RmDcProposalID as int, not tuple 2022-08-23 16:58:10 -04:00
Aayush 279b1f4317 FVM: record message applied metrics 2022-07-18 10:50:58 -04:00
Aayush Rajasekaran e950421e87 Merge pull request #9037 from filecoin-project/asr/implicit-limit
FVM: Use MaxInt64 for Implicit Message gas limits
2022-07-15 15:28:31 -04:00
Aayush 7cd0ce4010 FVM: Use MaxInt64 for Implicit Message gas limits 2022-07-15 15:09:12 -04:00
Aayush 474a50252b FVM: always enable tracing for user-triggered executions 2022-07-14 15:41:26 -04:00
Aayush af525a4cf2 VM: Remove v15 FVM support 2022-07-14 14:55:48 -04:00
Aayush f9cf25f966 address review 2022-06-29 11:57:46 -04:00
Aayush a52d584d0c an attempt at cleanup 2022-06-28 19:24:47 -04:00
vyzo 3ad2fc5c4a feat: FVM Debug Dual Execution 2022-06-28 18:00:04 -04:00
Aayush 866693f3d5 fix: fvm: make exectraces match legacyVM some more 2022-06-22 11:29:14 -04:00
Łukasz Magiera db676acdf8 storage: Cleanup interfaces a bit 2022-06-17 13:52:19 +02:00
Jennifer Wang 51b6b07110 Merge branch 'release/v1.16.0' into jen/master16 2022-06-16 14:24:44 -04:00
Jiaying Wang 3465f3aba3 Merge pull request #8837 from filecoin-project/jen/refactor
chore: refactor:  rename var name for syncing mainnet v15 using FVM
2022-06-16 14:16:52 -04:00
Łukasz Magiera 05cdeb80c3 chore: remove redundant import prefixes 2022-06-15 12:06:22 +02:00
Łukasz Magiera a9600b8a6f storage: Move extern/sector-storage to storage/sealer 2022-06-14 20:03:38 +02:00
Łukasz Magiera 422f66776f Merge pull request #8859 from filecoin-project/chore/import-fix
chore: Fix imports
2022-06-14 18:54:03 +02:00
Łukasz Magiera e65fae28de chore: fix imports 2022-06-14 17:00:51 +02:00
Steven Allen ddc9425c07 feat: refactor: actor bundling system (#8838)
1. Include the builtin-actors in the lotus source tree.
2. Embed the bundle on build instead of downloading at runtime.
3. Avoid reading the bundle whenever possible by including bundle
   metadata (the bundle CID, the actor CIDs, etc.).
4. Remove everything related to dependency injection.
    1. We're no longer downloading the bundle, so doing anything ahead
       of time doesn't really help.
    2. We register the manifests on init because, unfortunately, they're
       global.
    3. We explicitly load the current actors bundle in the genesis
       state-tree method.
    4. For testing, we just change the in-use bundle with a bit of a
       hack. It's not great, but using dependency injection doesn't make
       any sense either because, again, the manifest information is
       global.
    5. Remove the bundle.toml file. Bundles may be overridden by
       specifying an override path in the parameters file, or an
       environment variable.

fixes #8701
2022-06-13 10:51:49 -07:00
Steven Allen 30981d0fdd feat: refactor: actor bundling system (#8838)
1. Include the builtin-actors in the lotus source tree.
2. Embed the bundle on build instead of downloading at runtime.
3. Avoid reading the bundle whenever possible by including bundle
   metadata (the bundle CID, the actor CIDs, etc.).
4. Remove everything related to dependency injection.
    1. We're no longer downloading the bundle, so doing anything ahead
       of time doesn't really help.
    2. We register the manifests on init because, unfortunately, they're
       global.
    3. We explicitly load the current actors bundle in the genesis
       state-tree method.
    4. For testing, we just change the in-use bundle with a bit of a
       hack. It's not great, but using dependency injection doesn't make
       any sense either because, again, the manifest information is
       global.
    5. Remove the bundle.toml file. Bundles may be overridden by
       specifying an override path in the parameters file, or an
       environment variable.

fixes #8701
2022-06-13 10:15:00 -07:00
Aayush d32ed4440d Drop actor meta shimming for testing 2022-06-10 17:30:07 -04:00
jennijuju 41e325e822 chore: refactor: rename var name for syncing mainnet v15 using FVM 2022-06-09 16:53:16 -05:00