Commit Graph

3465 Commits

Author SHA1 Message Date
Łukasz Magiera
848c132e43 Merge remote-tracking branch 'origin/master' into feat/lp-seal 2024-02-22 12:17:09 +01:00
Steven Allen
8ba491b6b4
feat: api: improve the correctness of Eth's trace_block (#11609)
* Improve the correctness of Eth's trace_block

- Improve encoding/decoding of parameters and return values:
  - Encode "native" parameters and return values with Solidity ABI.
  - Correctly decode parameters to "create" calls.
  - Use the correct (ish) output for "create" calls.
  - Handle all forms of "create".
- Make robust with respect to reverts:
  - Use the actor ID/address from the trace instead of looking it up in
    the state-tree (may not exist in the state-tree due to a revert).
  - Gracefully handle failed actor/contract creation.
- Improve performance:
  - We avoid looking anything up in the state-tree when translating the
    trace, which should significantly improve performance.
- Improve code readability:
  - Remove all "backtracking" logic.
  - Use an "environment" struct to store temporary state instead of
    attaching it to the trace.
- Fix random bugs:
  - Fix an allocation bug in the "address" logic (need to set the
    capacity before modifying the slice).
  - Improved error checking/handling.
- Use correct types for `trace_block` action/results (create, call, etc.).
  - And use the correct types for Result/Action structs instead of reusing the same "Call" action every time.
- Improve error messages.
2024-02-21 12:20:00 -08:00
Łukasz Magiera
a586982c2a update docsgen 2024-02-21 17:00:30 +01:00
Łukasz Magiera
2eaf34bc92 provider: Expand provider subsystems config docs 2024-02-21 16:51:29 +01:00
Łukasz Magiera
e93bcb4bc4 fix addr config unmarshal 2024-02-17 13:15:47 +01:00
Łukasz Magiera
c28bf97922 make gen 2024-02-16 21:22:26 +01:00
Łukasz Magiera
f8183a7122 fakelm: deals in SectorStatus 2024-02-16 21:22:15 +01:00
Łukasz Magiera
93ac1809be shed: boost-proxy 2024-02-16 21:22:15 +01:00
Łukasz Magiera
74bf18e8ce harmony api compat: support AuthNew 2024-02-16 21:22:15 +01:00
Łukasz Magiera
75c908dd0b harmony-compatible StorageAuthWithURL 2024-02-16 21:22:15 +01:00
Łukasz Magiera
8859eb73c4 wip boost addpiece handler 2024-02-16 21:22:15 +01:00
Łukasz Magiera
8780fbd5fe lotus-provider: Initial boost compat 2024-02-16 21:21:38 +01:00
Łukasz Magiera
eba45ca84e make gen 2024-02-16 21:21:38 +01:00
Łukasz Magiera
d820e76beb lpseal: MoveStorage 2024-02-16 21:21:38 +01:00
Łukasz Magiera
4649d3b8d0 lpseal: Finalize 2024-02-16 21:21:38 +01:00
Łukasz Magiera
4c2235a686 make gen, mod tidy 2024-02-16 21:21:25 +01:00
Łukasz Magiera
41f80a66f9 lpseal: Commit submit task 2024-02-16 21:21:25 +01:00
Łukasz Magiera
1e7218f8de lpseal: PoRep proof (commit) support 2024-02-16 21:21:25 +01:00
Łukasz Magiera
9560c3efaf storage config: Expand paths 2024-02-16 21:21:25 +01:00
Łukasz Magiera
0244c7df50 lpseal: Wire up SubmitPrecommit 2024-02-16 21:21:21 +01:00
Łukasz Magiera
f74c3ccd2d lpseal: Implement SDR-Trees 2024-02-16 21:20:13 +01:00
Łukasz Magiera
5d26c3a9dc lpseal: Wire up sdr task 2024-02-16 21:20:13 +01:00
Łukasz Magiera
acdc19817e
Merge pull request #11592 from filecoin-project/snadrus/multiaddr
feat: lp: support multiple SP IDs
2024-02-15 18:01:43 +01:00
Steven Allen
ca877940a0
feat: fvm: update the FVM/FFI to v4.1 (#11608)
This:

1. Adds nv22 support.
2. Updates the message tracing format.
2024-02-06 17:22:14 -08:00
Andrew Jackson (Ajax)
a0867a2a60 fix: lp multiaddr, minerID rm, cfg upgrade 2024-01-30 16:44:08 -06:00
Steven Allen
efb9422c01
fix: eth: re-execute tipsets on missing events (#11588)
This will re-execute tipsets to forcibly re-compute and store events
when they're missing. This is effectively lazy backfilling of events.

NOTE: This _won't_ backfill the index itself, it'll just give us the
events.

fixes #11335
2024-01-30 10:29:54 -08:00
Andrew Jackson (Ajax)
1f3abf4995 also-sql naming 2024-01-29 18:22:50 -06:00
Andrew Jackson (Ajax)
0006bc3d77 feat: multiaddr lp 2024-01-19 18:48:29 -06:00
Łukasz Magiera
92b67334ae Merge remote-tracking branch 'origin/master' into misc/drop-raft-experiment 2024-01-09 15:39:41 +01:00
Andrew Jackson (Ajax)
25b228c2f6 fix: lint 2023-12-19 09:12:45 -06:00
Andrew Jackson (Ajax)
a65c8f1393 Merge branch 'master' into debugWeb to unbreak testing 2023-12-18 19:24:16 -06:00
Andrew Jackson (Ajax)
41bc8f8791 Folded PR11519 into a shared-capable LP 2023-12-18 16:02:54 -06:00
Steven Allen
17f6f4caf2
fix: eth: decode as actor creation iff "to" is the EAM (#11520)
Previously, we weren't checking the "to" address. I've also re-ordered
the operations in this function to make it easier to reason about them.
It'll have a slight runtime cost (we _always_ ABI-encode the parameters,
then throw away the result if it turns out we're actually dealing with
an Ethereum transaction), but it's _much_ simpler.
2023-12-14 10:12:54 -08:00
Andrew Jackson (Ajax)
4161c270d7 debugWeb 1 2023-12-11 23:16:57 -06:00
Łukasz Magiera
fa269ed1b3 sturdypost: Small review cleanups 2023-12-02 00:31:24 +01:00
Andrew Jackson (Ajax)
e102e4f31f
Merge branch 'master' into feat/sturdypost 2023-11-29 17:15:42 -06:00
Łukasz Magiera
e425322c2b misc: Drop the raft-cluster experiment 2023-11-29 17:28:46 +01:00
Friðrik Ásmundsson
813d133c24
Merge pull request #11462 from filecoin-project/update-estimate-gas
api: Add block param to eth_estimateGas
2023-11-29 15:45:14 +00:00
Steven Allen
a34cc5e4e9
fix: eth: handle unresolvable addresses (#11433)
Correctly handle "unresolvable" to/from addresses in top-level messages in the Ethereum API. Specifically:

1. Fail if we can't resolve the from address. As far as I can tell, this should be impossible (the message statically couldn't have been included in the block if the sender didn't exist).
2. If we can't resolve the "to" address to an ID, use "max uint64" as the ID (`0xff0000000000000000000000ffffffffffffffff`). This will only happen if the transaction was reverted. It'll be a little confusing, but the alternative is to (a) use an empty address (will look like a contract creation, which is definitely wrong) or (b) use a random/hashed address which will likely be more confusing as it won't be "obviously weird".
2023-11-29 16:12:18 +04:00
Steven Allen
afa95681af
fix: chain: make failure to load the chain state fatal (#11426)
Otherwise, we get strange panics later.
2023-11-29 16:01:26 +04:00
Fridrik Asmundsson
a3417e7488 Make block param to EthEstimateGas optional 2023-11-29 10:26:22 +00:00
Fridrik Asmundsson
717d2a0eeb Add block param to EthEstimateGas 2023-11-28 14:57:05 +00:00
Łukasz Magiera
687ad3ae53 make db config in lotus-miner actually optional 2023-11-23 17:57:03 +01:00
Łukasz Magiera
f0a931edc9 fix: miner: Don't require db config when it's not used 2023-11-23 16:28:39 +01:00
Łukasz Magiera
16cc24443f Merge remote-tracking branch 'origin/master' into chore/master-into-sturdy 2023-11-22 17:26:37 +01:00
Andrew Jackson (Ajax)
31ed5cc8f4
Merge branch 'feat/sturdypost' into fix-sturdy-tests 2023-11-20 18:08:40 -06:00
Andrew Jackson (Ajax)
ec43903ad6 lp: test cli, titled sql 2023-11-20 18:05:59 -06:00
Steven Allen
d5fd4cdcc0
feat: eth: encode eth tx input as solidity ABI (#11402)
When translating "native" messages to Ethereum transactions, correctly handle parameters:

1. If the message looks like a valid "create external", treat it as a contract creation.
2. If it looks like a valid EVM invocation, decode it as such.
3. Otherwise, ABI-encode the parameters to make them look like a "handle_filecoin_method" call. This
    will help chain explorers recognize these messages.

Part of #11355
2023-11-17 20:46:49 +01:00
Steven Allen
9b4df6a4d0
fix: eth: use the correct state-tree when resolving addresses (#11387)
We need to always use the state-tree from the tipset _after_ the message
executed. If we use any other state-tree, we might not find the address
we're trying to resolve.

This change also has some implication for pending messages: there's no
guarantee we'll be able to generate a 0x-style address for a pending
native message. So, instead of trying, I've removed support for pending
native messages from the Eth API. Messages from EthAccounts will still
work, and native messages will still show up in blocks/traces, they just
won't show up as "pending". Which should affect exactly nobody.

I'm also taking this opportunity to cleanup some edge-cases:

1. Pass contexts where appropriate.
2. Remove all state access from `ethTxHashFromSignedMessage`.

Part of #11355
2023-11-17 18:20:31 +01:00
Steven Allen
06d288e92b
fix: eth: remove trace sanity check (#11385)
We added this check as a self-test to make sure that the message indices
in our trace matched up with those in the block. Unfortunately, this
only works for blocks on the main-chain, and breaks tracing of uncle
blocks (and tracing of head).
2023-11-17 18:08:58 +01:00
Łukasz Magiera
fceabdbd5c make gen 2023-11-15 13:50:31 +01:00
Andrew Jackson (Ajax)
9b4a3ba23d fix circleci and fiximports 2023-11-15 13:06:51 +01:00
Andrew Jackson (Ajax)
c1edae62ad gen fix 2023-11-15 13:06:51 +01:00
Andrew Jackson (Ajax)
7ec9eb0a70 essential fixes for scheduling 2023-11-14 22:38:04 -06:00
Andrew Jackson (Ajax)
8fe8977758 fixes 2023-11-14 19:53:00 -06:00
Andrew Jackson (Ajax)
56498f1fb4 fix circleci and fiximports 2023-11-13 18:09:11 -06:00
Andrew Jackson (Ajax)
3c4e22ff0c gen fix 2023-11-13 17:59:34 -06:00
Łukasz Magiera
f2ef006abd lotus-miner: add config for disabling winning post 2023-11-11 12:19:58 +01:00
Łukasz Magiera
d719db3f2c lpwinning: fix PoSt prover gen 2023-11-11 09:36:33 +01:00
Łukasz Magiera
2a4ce7d358 lpwinning: wire up winningPoSt 2023-11-11 09:36:33 +01:00
Andrew Jackson (Ajax)
06a0a69b2a
Merge pull request #11388 from filecoin-project/feat/lp-migrate2
cli: lotus-shed provider from-miner
2023-11-09 21:08:55 -06:00
Aayush
5b5dd525f5 skip migration cache correctly 2023-11-09 14:14:46 -05:00
Łukasz Magiera
2bb4940992 config codegen 2023-11-09 18:22:08 +01:00
Łukasz Magiera
ad4556e020 lotus miner config to entirely disable WindowPoSt 2023-11-09 18:11:10 +01:00
Andrew Jackson (Ajax)
b0cb4b56d6 lp migrator fixes 2023-11-08 18:01:44 -06:00
Andrew Jackson (Ajax)
23ba7faa84 Merge branch 'release/v1.25.0' into feat/sturdypost 2023-11-08 11:24:17 -06:00
Aayush
65591841f9 skip migration cache correctly 2023-11-08 17:14:02 +01:00
Łukasz Magiera
b243c405b4
Merge pull request #11353 from CIDgravity/improve-sectors-summary-call
feat: sealing: load SectorsSummary from sealing SectorStats instead of calling API each time
2023-11-07 13:22:18 +01:00
Andrew Jackson (Ajax)
848c20d15f Merge branch 'master' into feat/sturdypost 2023-11-06 16:10:57 -06:00
Steven Allen
cff785fa37
fix: eth: correctly encode and simplify native input/output encoding (#11382)
* chore: eth: move & rename input/output encoding functions

These are shared functions, so I'm moving them to the utils library.

* fix: eth: correctly encode and simplify native input/output encoding

When generating eth traces, we encode "native" message inputs/outputs
to "solidity ABI" by formatting the inputs/outputs the same way we do in
FEVM's "handle_native_method". However, we had quite a few bugs with the
implementation:

1. We were right-aligning 64bit values in 256bit words, instead of
left-aligning (as we should given that these values are big-endian).
2. The return-value encoding wasn't correctly handling lengths.

This patch:

1. Fixes those bugs.
2. Deduplicates the logic (we're doing _basically_ the same thing in
both cases).
3. Removes all error paths (these functions can't fail).
2023-11-06 09:41:22 -08:00
Florian RUEN
c0c4e6bf35
fix: add lk.Lock() and move the map copy to avoid miner crash 2023-11-03 15:38:20 +01:00
Florian RUEN
02929dd166
feat: load SectorsSummmary from SectorStats instead of calling API (faster) 2023-11-03 15:38:19 +01:00
Steven Allen
65085d17c0 fix: api: compute gasUsedRatio based on max gas in the tipset (#11354)
We were computing this based on the max block gas, but this is
incorrect. The new value isn't entirely correct either (we should
probably compute an average of the gas used in each block in the
tipset?), but it's good enough.

fixes #10515
2023-11-02 07:57:54 +08:00
Steven Allen
b8f7109988 fix: api: compute the effective gas cost with the correct base-fee (#11357)
fixes #11252
2023-11-02 07:57:40 +08:00
Aayush Rajasekaran
ce0c1d834f feat: chain: light-weight patch to fix calibrationnet (#11363)
* refactor: make GetEmbeddedBuiltinActorsBundle take network bundle name

* update calibnet actor bundle to v12.0.0-rc.2, but include v12.0.0-rc.1 as calibrationnet-buggy.car

* wip: calibnet unbork migration

* calibnet: add buggy miner actor CID to actorMeta

* fix incorrect buggy calibnet manifest

* make UpgradeWatermelonFixHeight a build param

* calibnet patch: check whether network is calibration from init actor state

* add sanity checks to the v12 calibnet patch upgrade

* address review
2023-10-31 18:36:05 -04:00
Aayush Rajasekaran
77b6b7ef10
feat: chain: light-weight patch to fix calibrationnet (#11363)
* refactor: make GetEmbeddedBuiltinActorsBundle take network bundle name

* update calibnet actor bundle to v12.0.0-rc.2, but include v12.0.0-rc.1 as calibrationnet-buggy.car

* wip: calibnet unbork migration

* calibnet: add buggy miner actor CID to actorMeta

* fix incorrect buggy calibnet manifest

* make UpgradeWatermelonFixHeight a build param

* calibnet patch: check whether network is calibration from init actor state

* add sanity checks to the v12 calibnet patch upgrade

* address review
2023-10-31 18:29:09 -04:00
Andrew Jackson (Ajax)
e4f09bc1a4 Merge branch 'feat/wdpost-adder2' into wdpost-can-accept 2023-10-31 17:16:04 -05:00
Łukasz Magiera
adb0fc3259 lotus-provider: Put storage secret in the config 2023-10-31 14:45:38 +01:00
Andrew Jackson (Ajax)
1ff0d61adb LP- Better repo handling 2023-10-30 18:45:09 -05:00
Łukasz Magiera
24fcde40a4 lp config: make default cmd not panic 2023-10-30 17:19:07 +01:00
Phi
7b473f60ae Handle errors from Close() in CheckUDPBufferSize
Added error handling for the Close() method calls in the CheckUDPBufferSize function to satisfy linting rules and improve error logging.
2023-10-30 09:59:59 +00:00
Phi
a6ae497c02 Check UDP-buffer-size
Raise alert if UDP-buffer size is not high enough
2023-10-30 09:36:15 +00:00
Steven Allen
3f00691f26
fix: api: compute gasUsedRatio based on max gas in the tipset (#11354)
We were computing this based on the max block gas, but this is
incorrect. The new value isn't entirely correct either (we should
probably compute an average of the gas used in each block in the
tipset?), but it's good enough.

fixes #10515
2023-10-27 07:37:51 -07:00
Steven Allen
420f33017e
fix: api: compute the effective gas cost with the correct base-fee (#11357)
fixes #11252
2023-10-27 07:37:16 -07:00
Łukasz Magiera
a5a0bd378e lpwindow: make gen 2023-10-25 21:13:56 +02:00
Łukasz Magiera
4fad50ad9a provider: Undo some hacks, move wdpost task to lpwindow pkg 2023-10-25 14:23:25 +02:00
Andrew Jackson (Ajax)
43680400c3 lp runs. todo ds-sectorInfo move & cleanups 2023-10-24 19:26:13 -05:00
Steven Allen
6e22c08c1d
fix: api: return errors on failure to lookup an eth txn receipt (#11329)
All these cases here are actually errors and returning `nil` makes this
hard to debug. We likely returned nil in the past to be "best effort"
but, as far as I can tell, we should only hit these error cases if
something is actually wrong.

part of #11325
2023-10-24 12:13:45 -07:00
Andrew Jackson (Ajax)
5b5ae80e30 renamed api config 2023-10-19 18:19:42 -05:00
Andrew Jackson (Ajax)
2bc4951d79 Merge branch 'release/v1.24.0' into release/v1.25.0 2023-10-17 10:19:51 -05:00
Andrew Jackson (Ajax)
e548b46dbf lotus-provider-in-progress 2023-10-16 10:28:58 -05:00
Aayush
5e76b05b17 Merge branch 'feat/nv21' into asr/merge-feat-nv21 2023-10-16 11:13:33 -04:00
Andrew Jackson (Ajax)
1f1e840e5c Merge branch 'feat/wdpost-adder' into wdpost-can-accept 2023-10-11 17:51:46 -05:00
Aayush Rajasekaran
a7f4976ab1
Merge pull request #11314 from filecoin-project/fix/sector-commitment-comment
fix: docs: Update SectorLifetime to be in line with FIP-0052
2023-10-11 15:50:10 -04:00
Aayush
2a644e2c04 feat: limit PoSted partitions to 3 2023-10-11 12:41:55 -04:00
Phi
db96bc0143 Update comment
Make clear that 1278 days are applicable in nv21 not before.
2023-10-11 16:30:30 +01:00
Phi
ce27d5fcf2 fix: config: update sector lifetime comment
Update SectorLifetime duration comment to be in line with FIP-0052: https://fips.filecoin.io/FIPS/fip-0052.html
2023-10-09 11:17:03 +01:00
Andrew Jackson (Ajax)
598e9b931d Merge branch 'feat/wdpost-adder' into wdpost-can-accept 2023-10-06 11:48:04 -05:00
Łukasz Magiera
1927b26abf fee config: Default MaximizeWindowPoStFeeCap to true 2023-10-03 11:53:26 +02:00
Łukasz Magiera
444e75ef77 feat: mpool/wdpost: Maximize feecap config 2023-10-03 11:32:49 +02:00