Commit Graph
54 Commits
Author SHA1 Message Date
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
Łukasz Magiera 8ce0b984b7 itests: Fix TestEthFilterAPIDisabledViaConfig 2023-02-02 15:59:55 +01:00
Łukasz Magiera 3d207de6aa node builder: Use gateway eth module in lite mode 2023-02-02 13:39:40 +01:00
Geoff Stuart 6601d9031d Set default path for eth event db, set it to enabled by default if EnableEthRPC is set 2023-01-19 18:40:28 -05:00
Łukasz Magiera eaccb571a5 fix: config: Fix eth rpc typo (#10076) 2023-01-19 20:35:19 +00:00
Łukasz Magiera 66f5ee4ae9 config: Fevm.EnableEthPRC 2023-01-19 18:31:17 +01:00
Geoff Stuart f8dee0983a review fixes 2023-01-16 01:56:55 -05:00
Geoff Stuart a8436074a6 Store mapping from hashes for Ethereum transactions to Filecoin Message Cids 2023-01-16 01:17:56 -05:00
Jennifer Wang 427fbdb8a9 Merge branch 'release/v1.20.0' into jen/resolveconflict 2023-01-13 21:50:57 -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
Łukasz Magiera 9b7c506de0 lite node: Use full.EthEventAPI provided by gateway in lite mode 2023-01-13 20:04:42 +01:00
Łukasz Magiera 12c23d7d60 api: Drop EthModuleDummy 2023-01-13 20:04:42 +01:00
Steven Allen 266492fa1c Merge branch 'feat/nv18-fevm' into feat/nv18-events 2022-12-07 22:16:56 -08:00
Steven Allen 176275267b Merge branch 'feat/nv18' into feat/nv18-fevm 2022-11-22 10:32:26 -08:00
Ian Davis 5b4ec7dbea feat: add test and fixes for EthSubscribe (#9659) 2022-11-16 20:26:57 +00:00
Ian DavisandRaúl Kripalani 273ac513fc Ethereum actor events API fixes (#9639)
Co-authored-by: Raúl Kripalani <raul@protocol.ai>
2022-11-15 13:02:11 +00:00
Shrenuj Bansal 800d9de4d5 Address comments 2022-11-14 15:46:58 -05:00
Shrenuj Bansal 2681c2a51a Change config name from Raft to Cluster 2022-11-11 15:13:52 -05:00
Shrenuj Bansal 2fa21ff091 Merge branch 'master' into sbansal/nonce-coordination-and-consensus-for-chain-nodes 2022-11-11 14:41:38 -05:00
Ian Davis 69210d0917 Ethereum compatible actor event API 2022-11-10 15:02:53 +00:00
vyzo 5949307342 fix gateway instantation for the eth api
it's a dummy, but at least it makes tests pass
2022-11-10 05:52:36 +02:00
Kevin Li 4652d8559f api: ethrpc: implement a few ethereum JSON-RPC API methods (#9208) 2022-11-09 19:23:11 +02:00
Łukasz Magiera 2c89b3240f retrieval: Support retrievals into remote stores 2022-11-08 09:37:34 +00:00
ZenGround0andzenground0 4ffded6fef feat:splitstore:single compaction that can handle prune aka two marksets one compaction (#9571)
* begin

* rough draft -- this should probably actually work?

* WIP

* Start testing

* message mode

* Fix tests, make gen

* Better default

* docsgen-cli

* Review Response

Co-authored-by: zenground0 <ZenGround0@users.noreply.github.com>
2022-11-07 16:31:12 -05:00
Shrenuj Bansal 986c5e3c68 Use multiaddrs in config for raft peerset 2022-09-30 16:45:04 +00:00
Shrenuj Bansal f89a682d98 Add Mpool ref to raft state and rearrange some APIs 2022-09-29 10:56:57 +00:00
Shrenuj Bansal 7470549199 Address moar comments 2022-09-22 16:27:15 -04:00
Shrenuj Bansal 81c729e09c Cluster raft config changes 2022-09-13 19:09:03 -04:00
Shrenuj Bansal 8f1b1bb1ff WIP: Raft consensus for lotus nodes in a cluster 2022-09-12 16:10:15 -04:00
Łukasz Magiera db676acdf8 storage: Cleanup interfaces a bit 2022-06-17 13:52:19 +02: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
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
vyzo da8bda3248 fix typo 2022-05-12 09:47:27 +03:00
vyzo 93f1fac76b simplify DI -- no need for the special key for builtin actor loading 2022-04-14 19:33:24 +03:00
vyzo 5e3112fa95 introduce a marker type for builtin actor loading to make DI work 2022-04-14 19:29:22 +03:00
vyzo f26d19ed7d load actor bundle at startup and initialize the manifest CID from the loaded file 2022-04-14 19:29:22 +03:00
Aayush 9ea623e125 Rename the Lotus VM to LegacyVM 2022-03-15 19:40:17 -04:00
Masih H. Derkani aacc246ba3 Merge branch 'master' into feat/cid-to-piece-idx 2022-03-02 14:06:30 +00:00
gammazero c084130d3e Lotus chain nodes relay indexer pubsub messages
Content providers announce the availability of indexer data using gossip pubsub.  The content providers are not connected directly to indexers, so the pubsub messages are relayed to indexers via chain nodes. This PR makes chain nodes relay gossip pubsub messages, on the /indexer/ingest/<netname> topic.
2022-02-03 14:56:21 -08:00
Łukasz Magiera 4235a97cf4 retrieval: OffChainRetrieval config 2022-01-20 18:19:27 +01:00
hannahhoward 368d72ebfe feat(graphsync): update to v0.10.0-rc1
also add config changes
2021-10-05 14:13:58 +11:00
Łukasz Magiera 31efe8a690 Merge pull request #7255 from filecoin-project/cleanup/consensus
chain: Cleanup consensus logic
2021-09-02 19:48:37 +02:00
Łukasz Magiera 30fccaa0bd fix lint 2021-09-02 18:45:18 +02:00
Łukasz Magiera 95b128b7bc chain: Cleanup consensus logic 2021-09-02 18:09:37 +02:00
Łukasz Magiera 52e93371bd builder: Handle chainstore config in ConfigFullNode 2021-08-31 13:25:18 +02:00
d7076778e2 integrate DAG store and CARv2 in deal-making (#6671)
This commit removes badger from the deal-making processes, and
moves to a new architecture with the dagstore as the cental
component on the miner-side, and CARv2s on the client-side.

Every deal that has been handed off to the sealing subsystem becomes
a shard in the dagstore. Shards are mounted via the LotusMount, which
teaches the dagstore how to load the related piece when serving
retrievals.

When the miner starts the Lotus for the first time with this patch,
we will perform a one-time migration of all active deals into the
dagstore. This is a lightweight process, and it consists simply
of registering the shards in the dagstore.

Shards are backed by the unsealed copy of the piece. This is currently
a CARv1. However, the dagstore keeps CARv2 indices for all pieces, so
when it's time to acquire a shard to serve a retrieval, the unsealed
CARv1 is joined with its index (safeguarded by the dagstore), to form
a read-only blockstore, thus taking the place of the monolithic
badger.

Data transfers have been adjusted to interface directly with CARv2 files.
On inbound transfers (client retrievals, miner storage deals), we stream
the received data into a CARv2 ReadWrite blockstore. On outbound transfers
(client storage deals, miner retrievals), we serve the data off a CARv2
ReadOnly blockstore.

Client-side imports are managed by the refactored *imports.Manager
component (when not using IPFS integration). Just like it before, we use
the go-filestore library to avoid duplicating the data from the original
file in the resulting UnixFS DAG (concretely the leaves). However, the
target of those imports are what we call "ref-CARv2s": CARv2 files placed
under the `$LOTUS_PATH/imports` directory, containing the intermediate
nodes in full, and the leaves as positional references to the original file
on disk.

Client-side retrievals are placed into CARv2 files in the location:
`$LOTUS_PATH/retrievals`.

A new set of `Dagstore*` JSON-RPC operations and `lotus-miner dagstore`
subcommands have been introduced on the miner-side to inspect and manage
the dagstore.

Despite moving to a CARv2-backed system, the IPFS integration has been
respected, and it continues to be possible to make storage deals with data
held in an IPFS node, and to perform retrievals directly into an IPFS node.

NOTE: because the "staging" and "client" Badger blockstores are no longer
used, existing imports on the client will be rendered useless. On startup,
Lotus will enumerate all imports and print WARN statements on the log for
each import that needs to be reimported. These log lines contain these
messages:

- import lacks carv2 path; import will not work; please reimport
- import has missing/broken carv2; please reimport

At the end, we will print a "sanity check completed" message indicating
the count of imports found, and how many were deemed broken.

Co-authored-by: Aarsh Shah <aarshkshah1992@gmail.com>
Co-authored-by: Dirk McCormick <dirkmdev@gmail.com>

Co-authored-by: Raúl Kripalani <raul@protocol.ai>
Co-authored-by: Dirk McCormick <dirkmdev@gmail.com>
2021-08-16 23:34:32 +01:00
Łukasz Magiera 389f71251c Remove townhall 2021-07-28 17:58:46 +02:00
Anton Evangelatov 6b014f57e5 pass Subsystems to StorageMiner option; add enableLibp2p bool in Settings 2021-07-07 13:56:37 +02:00
Anton Evangelatov 9ec7cd7239 enable libp2p options 2021-06-30 12:55:43 +02:00