Commit Graph

664 Commits

Author SHA1 Message Date
Steven Allen
20de759aee
feat: fvm: optimize FVM lanes a bit (#11875)
This is showing up in profiles so I figured I'd optimize it a bit:

1. Avoid holding locks while recording metrics.
2. Slightly reduce allocations by re-using the metrics "mutators".

Also, use the passed context for better tracing.

This is unlikely to make a huge difference, but it may help RPC
providers a _tiny_ bit and doesn't really move the complexity needle.
2024-04-14 15:12:19 -05:00
Aayush
410bdc389e fix: nv21fix migration: correctly upgrade system actor 2023-11-09 14:14:41 -05:00
Aayush
7e6ed09628 refactor: move vm.Rand to rand.Rand 2023-08-22 11:34:28 -04:00
Aayush
034f6cf832 wip: 2 more randomness fetching APIs 2023-08-21 16:32:27 -04:00
Aayush
e5fbba7958 Refactor: Rand: Return randomness digest to VM 2023-08-21 15:44:49 -04:00
Aayush
98a82d3dfe Refactor: Rand: Rename DrawRandomness to DrawRandomnessFromBase 2023-08-21 15:03:46 -04:00
Aayush
05ac9453cd Refactor: Rand: return randomness base without hashing 2023-08-21 15:03:46 -04:00
Łukasz Magiera
683432e6e0
Merge pull request #11119 from filecoin-project/chore/cleanup-compunscid
chore: legacy syscalls: Cleanup ComputeUnsealedSectorCID
2023-08-02 06:45:35 -07:00
Aayush
cd958e4f6e feat: FVM: do not error on unsuccessful implicit messages 2023-07-31 15:26:37 -04:00
Łukasz Magiera
bf36ca93bb legacy syscalls: Cleanup ComputeUnsealedSectorCID 2023-07-31 12:43:47 +02:00
Steven Allen
1fc47eb7d8 feat: vm: allow raw "cbor" in state and use the new go-multicodec
1. Switch to go-multicodec as the source of multicodec code information.
This gives us a central, generated source of multicodec codes.
2. Use this library inside the VM and shapshot logic to consistently
allow CBOR, in addition to DagCBOR.
3. Remove the hard-coded CBOR constant.
2023-07-17 11:24:01 -07:00
Aayush
07965467ee feat: fvm: apply a max length when decoding events 2023-07-08 11:05:01 -04:00
Jorropo
fe42d974a2 chore: all: migrate from go-libipfs to boxo
github.com/ipfs/libipfs/blocks was unmigrated to github.com/ipfs/go-block-format due to compatibility issues with the rest of the IPLD stack.
2023-04-18 17:22:18 +02:00
vyzo
d71b528253 reorg initialization code for better readability, remove unused import 2023-03-30 18:15:13 +03:00
vyzo
7b4e68249a add comment about Signal unsoundness 2023-03-30 18:13:08 +03:00
vyzo
54a80a8a97 revert dead code 2023-03-30 18:11:44 +03:00
vyzo
4184ce9c75 refactor execution lanes: hide the lock 2023-03-29 16:45:45 +03:00
vyzo
71650cd8a4 rename newVM to makeVM for a happy yushie 2023-03-28 18:05:00 +03:00
vyzo
b2b78e9dfa
Update chain/vm/execution.go
Co-authored-by: Aayush Rajasekaran <arajasek94@gmail.com>
2023-03-28 17:56:35 +03:00
vyzo
dcd9869842 make gen 2023-03-28 16:58:09 +03:00
vyzo
08134552a4 address review comments 2023-03-24 15:48:58 +02:00
vyzo
4b590e2102 add vm execution metrics 2023-03-24 15:16:22 +02:00
vyzo
317a87d669 add some sanity checks for execution concurrency parameters 2023-03-23 18:52:37 +02:00
vyzo
2a0660447a make token.Done idempotent 2023-03-23 17:38:36 +02:00
vyzo
ee6c0f8570 only call Atoi on non empty strings 2023-03-23 17:28:08 +02:00
vyzo
6550abdfcc introduce execution lanes 2023-03-23 16:53:50 +02:00
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 Allen
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
raulk
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 Allen
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