Łukasz Magiera
53cba157e2
Merge pull request #5804 from zl03jsj/fix/StateManager.Replay
...
fix: StateManager.Replay
2021-03-25 13:27:45 +01:00
Łukasz Magiera
c41777dcd2
API proxy struct codegen ( #5854 )
...
* mostly working api proxy gen
* api: Consistent api names
* fix docsgen
* regenerate api struct
* api: expand external interfaces
* Add missing gen files
* apigen: fix perm detection
* api: Move perm tags to the interface
* gofmt
* worker perms
* docsgen
* docsgen: ignore tag comments
* apigen: add codegen warning
* gofmt
* missing actor type
* docsgen
* make linter happy
* fix lint
* apigen: use directives for tags
* docsgen
* regen openrpc docs
2021-03-23 13:42:56 +01:00
Peter Rabbitson
c340750672
Nerpa reset backport/cherry-pick from 73eabc310f
2021-03-18 20:55:15 +01:00
Aayush Rajasekaran
707219b7a1
Disable the Calico migration on not-mainnet
2021-03-17 20:46:00 -04:00
zl
6f64d5db6f
bugfix: StateManager.Replay
2021-03-13 00:12:37 +08:00
whyrusleeping
e0b650d4ec
make rpcstatemanager its own package, for easy reuse
2021-03-11 18:21:18 -08:00
Raúl Kripalani
b1c348b4a7
address review comments.
2021-03-02 16:31:01 +00:00
Raúl Kripalani
3795cc2bd2
segregate chain and state blockstores.
...
This paves the way for better object lifetime management.
Concretely, it makes it possible to:
- have different stores backing chain and state data.
- having the same datastore library, but using different parameters.
- attach different caching layers/policies to each class of data, e.g.
sizing caches differently.
- specifying different retention policies for chain and state data.
This separation is important because:
- access patterns/frequency of chain and state data are different.
- state is derivable from chain, so one could never expunge the chain
store, and only retain state objects reachable from the last finality
in the state store.
2021-02-28 22:49:44 +00:00
Raúl Kripalani
7f0f7d0b36
Merge branch 'master' into refactor/lib/blockstore
2021-02-28 19:55:23 +00:00
Aayush Rajasekaran
60b7f56297
Code review
2021-02-19 15:10:56 -05:00
Aayush Rajasekaran
96b4b828f7
Remove the null bls actor from the init actor state
2021-02-18 19:01:28 -05:00
Aayush Rajasekaran
a0fedf8bdb
Only delete the zero BLS actor on mainnet
2021-02-18 19:01:21 -05:00
Aayush Rajasekaran
5aff54161a
Delete the null-bls actor
2021-02-18 19:01:03 -05:00
Łukasz Magiera
0c6aef221d
Fix error logging format strings
2021-02-11 12:00:26 +01:00
Łukasz Magiera
56a9d05491
Merge remote-tracking branch 'origin/master' into steb/refactor-consistent-tipset-methods
2021-01-30 12:05:21 +01:00
Raúl Kripalani
d1104fec4c
rename blockstores for consistency.
2021-01-29 23:17:25 +00:00
Raúl Kripalani
e02fdf5064
Merge branch 'master' into refactor/lib/blockstore
2021-01-29 21:21:31 +00:00
Raúl Kripalani
b0cbc932bd
consolidate all blockstores in blockstore package.
2021-01-29 20:01:00 +00:00
Steven Allen
53271729b6
tweak migration perf
2021-01-28 16:15:23 -08:00
Steven Allen
2f3c912ad9
improve upgrade logging
2021-01-28 16:15:23 -08:00
Steven Allen
a9a65e05d8
feat: avoid computing the tip-set state when looking up addresses
2021-01-27 17:54:42 -08:00
Steven Allen
4890d83acb
test: assert that pre-migrations are actually run
2021-01-27 16:12:08 -08:00
Steven Allen
39d4f6780d
pre-migration: refactor timing specification
...
There are now three times:
1. StartWithin: start within X epochs of the upgrade.
2. DontStartWithin: don't start within X epochs of the upgrade.
3. StopWithin: stop within X epochs of the upgrade.
2021-01-27 16:09:07 -08:00
Steven Allen
bceb246080
set worker counts for pre-migrations
2021-01-27 15:47:51 -08:00
Steven Allen
cffeb1a590
fix doc comments
...
Co-authored-by: Aayush Rajasekaran <arajasek94@gmail.com>
2021-01-27 15:41:26 -08:00
Steven Allen
9574db6d0a
log in migration
2021-01-27 15:05:00 -08:00
Steven Allen
9a03c003fe
fix sorted test
2021-01-27 13:05:14 -08:00
Steven Allen
56054b0ad3
sort pre-migrations
2021-01-27 12:57:47 -08:00
Steven Allen
854385168d
add additional pre-migration validations
2021-01-27 12:57:47 -08:00
Steven Allen
35d6a40071
cleanup pre-migration code a bit
2021-01-27 12:57:17 -08:00
Steven Allen
4072f24bf2
test pre-migrations
2021-01-27 12:57:17 -08:00
Steven Allen
05026a23b9
actually use the temp cache for pre-migrations
2021-01-27 12:57:17 -08:00
Steven Allen
32059d0cbf
stmgr: only persist the migration cache on success
...
Otherwise, we may end up referencing blocks we never wrote to disk.
2021-01-27 12:56:47 -08:00
Steven Allen
b08abc12ba
fix error message
2021-01-27 12:55:56 -08:00
Steven Allen
6362887ce3
rename Upgrade to Migration where applicable
...
This was really confusing.
2021-01-27 12:55:56 -08:00
Steven Allen
77117a0be5
wait for pre-upgrades to exit on stop
2021-01-27 12:55:56 -08:00
Steven Allen
f65d179f2c
make pre-migrations async
2021-01-27 12:55:56 -08:00
Steven Allen
8d05c5d62c
validate pre-migrations
2021-01-27 12:55:56 -08:00
Steven Allen
8986a2002d
wire up re-migration logic for nv10
2021-01-27 12:55:56 -08:00
Steven Allen
8d3cc632ac
add support for running pre-migrations and caching their results
...
This can significantly speedup state migrations.
2021-01-27 12:55:53 -08:00
Steven Allen
f10b13ff32
register v3 methods
2021-01-21 15:21:20 -08:00
Steven Allen
f1719d1e23
mark v3 as expensive
2021-01-21 15:21:20 -08:00
Steven Allen
bf48728875
move winning post proof type logic into a helper
2021-01-21 15:21:20 -08:00
Steven Allen
64e805926f
update specs-actors for migration name change
...
Actors v3 is network version 10.
2021-01-21 15:21:19 -08:00
Aayush Rajasekaran
f6a0da3751
Add the migrationLogger struct
2021-01-21 15:21:19 -08:00
Steven Allen
99ea5b62ea
wire up v3 migration
2021-01-21 15:21:19 -08:00
Steven Allen
9d2c430138
remove abstract map constructor/loader
...
Different maps have different parameters now so we just construct/load them manually where needed.
2021-01-21 15:21:19 -08:00
Steven Allen
8dc49db30d
window <-> winning
2021-01-21 15:21:19 -08:00
Steven Allen
c05df6dc1d
fix: use the correct proof type in winning proofs
2021-01-21 15:21:19 -08:00
Aayush Rajasekaran
ab90a3b2bc
Actors update: MinerInfo.SealProofType has been removed
2021-01-21 15:21:19 -08:00
Aayush Rajasekaran
ba3b32cfe7
Pull in actors v3
2021-01-21 15:21:18 -08:00
Dirk McCormick
827a473391
feat: expose StateSearchMessage on gateway
2021-01-19 11:27:43 +01:00
Łukasz Magiera
22884f18f1
define v9 upgrade
2020-12-19 20:44:21 +01:00
Steven Allen
b8e3808c4f
Make state tipset usage consistent in the API
...
_Always_ (almost) use the tipset's parent state, instead of computing.
Exceptions:
* MinerGetBaseInfo. Fixing this would break things so we need to be
careful (although we could bump the API version, fix it, then fix the call
sites).
* StateReplay. This is replaying a message on top of the given tipset.
* GasEstimateGasLimit. This executes the message on-top-of the tipset's
computed state (unlike call which executes it on the tipset's parent state).
* Having this method and Call apply the message at different heights is really
weird.
2020-12-09 11:29:40 -08:00
Dirk McCormick
e02a366419
feat: error out deals that are not activated by proposed deal start epoch
2020-11-30 15:27:40 +01:00
Aayush Rajasekaran
526cd739f6
Return total power when GetPowerRaw doesn't find miner claim
2020-11-20 00:31:04 -05:00
zgfzgf
7b39c3a907
optimize code UpgradeTapeHeight and go fmt
2020-11-19 14:47:13 +08:00
Aayush Rajasekaran
c40c513508
Merge pull request #4862 from filecoin-project/asr/circ-supply
...
Modify vesting schedule post-calico
2020-11-17 13:32:55 -05:00
Steven Allen
4f33c91f81
fix calico upgrade logic
2020-11-16 19:04:17 +01:00
Steven Allen
948ee53080
add upgrade height where SDR is required
2020-11-16 19:04:13 +01:00
Łukasz Magiera
6bea9dd178
Making sealing logic work with multiple seal proof types
2020-11-16 19:03:30 +01:00
Aayush Rajasekaran
96d56ec096
Modify vesting schedule post-calico
2020-11-15 19:27:45 -05:00
Aayush Rajasekaran
5d9c79811f
Update to actors v2.3.0
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-11-12 18:49:11 +01:00
Łukasz Magiera
3a3270b37c
nv7 upgrade: Don't use terminated sectors for winning PoSt
2020-11-09 18:52:10 +01:00
Aayush Rajasekaran
7b8158b1af
Update to actors v2.3.0
2020-11-08 16:00:22 -05:00
Aayush Rajasekaran
5ff42505e8
Add a StateDecodeParams method
2020-10-29 22:04:33 -04:00
Steven Allen
f23034305f
Handle worker key changes correctly in runtime
2020-10-24 02:57:17 -07:00
Steven Allen
8bb69f1e9c
Use pre-computed parent state root for lookback info
...
There's no need to call TipSetState and recompute it.
2020-10-23 19:40:01 -07:00
Dirk McCormick
92942d44d1
feat: lite-mode - market storage and retrieval clients
2020-10-23 15:02:26 +02:00
Łukasz Magiera
b2510e5fc5
Merge pull request #4508 from filecoin-project/fix/actor-not-found-mininig-base
...
MinerGetBaseInfo: if miner is not found in lookback, check current
2020-10-22 19:45:43 +02:00
Steven Allen
5e23933757
fix import of v0 for test
...
We're still on actors v0 in this test.
2020-10-21 12:18:38 -07:00
Steven Allen
bcabe7b3b5
migrate methods to abstracted methods
...
Method numbers never change anyways. At worst, we'll deprecate old methods and
have to explicitly import them from the correct actors version to use them.
2020-10-21 12:18:37 -07:00
Steven Allen
4e730b5ec8
port to v2 imports
2020-10-21 12:16:23 -07:00
Jakub Sztandera
6530431995
MinerGetBaseInfo: if miner is not found in lookback, check current
...
If miner is found in current state, just return nil base info as miner
cannot mine if he is not found in the lookback.
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-10-20 23:54:35 +02:00
Aayush Rajasekaran
556f92a823
Update to actors v2.2.0 at PostLiftoff epoch
2020-10-20 17:23:35 -04:00
Aayush Rajasekaran
89f46cb5cc
Make ApplyRet's GasOutputs a pointer, return nil when unused
2020-10-15 21:20:53 -04:00
Aayush Rajasekaran
cb801d47c7
Add GasCost to InvocResult
2020-10-15 18:48:51 -04:00
Łukasz Magiera
22f49f8946
Merge pull request #4366 from zgfzgf/feat-applyblocks-map
...
optimize map use struct{}
2020-10-15 03:04:57 +02:00
Łukasz Magiera
1350079503
Merge pull request #4353 from zgfzgf/feat-compute-tipSet-state
...
optimize code use ts.Cids
2020-10-15 03:03:39 +02:00
Aayush Rajasekaran
bf619862c3
Merge pull request #4382 from filecoin-project/asr/invoc-result
...
Add message CID to InvocResult
2020-10-14 02:06:09 -04:00
Aayush Rajasekaran
ce54110228
Add message CID to InvocResult
2020-10-14 00:06:22 -04:00
Aayush Rajasekaran
458ea277fc
Aggregate irregular state transitions into a single EexcutionTrace
2020-10-13 22:59:42 -04:00
Aayush Rajasekaran
7dbc8965be
Apply nonces to implicit messages
2020-10-13 22:06:06 -04:00
Aayush Rajasekaran
2426700821
Don't transfer zero FIL during rebalancing fork
2020-10-13 22:06:06 -04:00
Jakub Sztandera
87cd8c6725
Fix off by one tipset in searchBackForMsg
...
This way we will return the tipset the message was executed in
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-10-13 17:48:54 +02:00
zgfzgf
1eb2d0ae50
optimize map use struct{}
2020-10-13 22:34:07 +08:00
zgfzgf
07d0b67628
optimize code use ts.Cids
2020-10-13 10:46:41 +08:00
Aayush Rajasekaran
96e1dfd8d7
Add an endpoint for precise circulating supply
2020-10-12 16:38:29 -04:00
Steven Allen
92177b5738
implement tape upgrade
...
Upgrade to specs-actors v2.1 and network version 5. This fixes the bug where
prove commits were not accepted.
2020-10-12 02:00:27 -04:00
Steven Allen
d84f5dabab
remove upgrade invariant checks
...
These checks may be _too_ strict and could cause the upgrade to fail unnecessarily.
2020-10-09 21:51:58 -07:00
Łukasz Magiera
fdaa9c14ad
Merge remote-tracking branch 'origin/master' into feat/signing-backends
2020-10-09 20:36:51 +02:00
Dirk McCormick
767611247c
feat: add RPC for StateWaitMsg
2020-10-09 11:45:16 +02:00
Dirk McCormick
00a14de094
feat: gateway - StateLookupID
2020-10-09 11:43:03 +02:00
Dirk McCormick
e19cd9ed01
feat: lotus-lite - replace wallet StateManager with thin client to gateway
2020-10-09 11:43:03 +02:00
Łukasz Magiera
7d2f06cfbd
Fix WalletSign in tests
2020-10-09 01:34:48 +02:00
Łukasz Magiera
8783c7434e
Merge remote-tracking branch 'origin/master' into feat/signing-backends
2020-10-09 00:50:41 +02:00
Jakub Sztandera
60768f4863
Optimize SearchForMessage and GetReceipt
...
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-10-08 23:10:06 +02:00
Łukasz Magiera
8dd8892b81
Merge remote-tracking branch 'origin/next' into feat/faster-v2-upgrade
2020-10-08 01:54:29 +02:00
Łukasz Magiera
f9f54819d4
Env var to control v2 actor migration
...
Env var to control v2 actor migration
2020-10-07 19:41:36 -04:00
Aayush Rajasekaran
d1555106a4
Set actorsv2 upgrade epoch
2020-10-07 19:41:36 -04:00
Steven Allen
d97eb10349
fix spelling nit
2020-10-07 16:32:54 -07:00
Steven Allen
e8253d22c6
only forbid Call* at expensive forks
2020-10-07 16:14:11 -07:00
Steven Allen
1fea550ce5
test that we refuse explicit calls at the migration epochs
2020-10-07 15:33:14 -07:00
Steven Allen
9b7b6146eb
construct the new vm with the state manager's vm constructor
2020-10-07 15:31:14 -07:00
Steven Allen
dab1107f5b
avoid estimating gas and explicitly calling blocks on fork tipsets
...
These tipsets can be slow.
2020-10-07 15:31:14 -07:00
Steven Allen
fe912223bd
pass an explicit upgrade height to migrations
...
The tipset height may not be the correct one, given null blocks.
2020-10-07 15:31:12 -07:00
Steven Allen
cca17f6078
fix state tree version in v2 upgrade
2020-10-07 12:04:32 -07:00
Steven Allen
e803cf151f
introduce separate state-tree versions
...
Instead of versioning the state tree along with the actors, version it
separately. This structure may not upgrade every time we update actors.
2020-10-07 12:04:32 -07:00
Łukasz Magiera
d6fa644974
Fix lint
2020-10-07 14:19:04 +02:00
Łukasz Magiera
b7c8f65af5
stmgr: Make v2 upgrade faster
2020-10-07 08:12:05 +02:00
Aayush Rajasekaran
4d6a0f7b8c
Set WinningPoStSectorSetLookback to finality post-v2 actors
2020-10-06 17:40:37 -04:00
Aayush Rajasekaran
282c99bdbd
Merge pull request #4160 from filecoin-project/asr/reserve-funds-cric-supply
...
Add funds that have left FilReserve to circ supply
2020-10-06 17:39:05 -04:00
Łukasz Magiera
15330396bb
Fix circ supply before v2 upgrade epoch
2020-10-06 16:53:49 +02:00
Aayush Rajasekaran
4a9155ba85
Use new MinerEligibleToMine method post-v2 actors
2020-10-06 04:43:55 -04:00
Aayush Rajasekaran
f8c886a611
Rename MiningBaseInfo.HasMinPower to EligibleForMining
2020-10-06 03:49:11 -04:00
Aayush Rajasekaran
f55b18eabe
Add funds that have left FilReserve to circ supply
2020-10-05 23:54:57 -04:00
Steven Allen
420c44ed2c
fix msig start height
2020-10-05 10:35:21 -07:00
Steven Allen
b6500beaab
Merge branch 'master' into asr/spec-v1
2020-10-05 10:29:09 -07:00
Steven Allen
c5de617af6
decouple network version and upgrades
...
Not all upgrades require network version bumps.
2020-10-02 17:10:57 -07:00
ZenGround0
fecc1ee0ef
Review cleanup
2020-10-02 17:12:12 -04:00
Steven Allen
ed86ac14a1
use upgrade epochs from upgrade schedule
2020-10-01 20:37:14 -07:00
Steven Allen
101d07f704
fix version off by one error
2020-10-01 15:33:32 -07:00
Steven Allen
e865ba0c64
improve upgrade schedule configurable
...
Unfortunately, it looks like functional ops cannot be passed in via lotus's
di system.
2020-10-01 15:18:59 -07:00
Steven Allen
1cc0f74744
make the upgrade schedule fully configurable
...
This should help with testing.
2020-10-01 15:02:40 -07:00
Aayush Rajasekaran
3d91633699
Update to v2/actors master
2020-10-01 05:07:00 -04:00
Steven Allen
47a83b422e
handle state forks in gas estimation
2020-09-30 15:52:32 -07:00
Steven Allen
9d59635b42
fix error messages
2020-09-30 15:04:16 -07:00
Steven Allen
42d5d8d784
run upgrade logic on stmgr.Call
2020-09-30 14:56:16 -07:00
ZenGround0
8091bb3117
Run fork function after cron
2020-09-30 17:19:58 -04:00
Steven Allen
5253c0d959
fix: import the correct v2 methods
2020-09-30 10:11:48 -07:00
Aayush Rajasekaran
be9d23b329
Centralize some params in builtin
2020-09-29 02:25:43 -04:00
Steven Allen
c0e190344d
check state invariants after upgrade
2020-09-28 17:42:29 -07:00
Steven Allen
a314cfd237
process error when setting network name
2020-09-28 15:59:11 -07:00
Steven Allen
c0b316fd9c
finish wiring up actors v2
2020-09-28 15:58:07 -07:00
Steven Allen
3e6323a503
make setNetworkName work with any actors version
2020-09-28 15:54:48 -07:00
Steven Allen
d1000e38d7
wire up network upgrade logic for v2 actors upgrade
2020-09-28 15:50:54 -07:00
Steven Allen
c88d124954
use built-in actor ID
...
The init actor will not allow the account actor to exec an arbitrary actor.
2020-09-28 14:43:55 -07:00
Steven Allen
233d8a9b72
update even more imports
2020-09-28 14:25:58 -07:00
Steven Allen
ca9448bc11
rename actors v1 -> actors v2
...
The actual actors version is v2, not v1. Using Version1 internally was really confusing.
2020-09-28 13:13:18 -07:00
Steven Allen
947d1e2902
Merge branch 'master' into asr/spec-v1
2020-09-28 12:53:40 -07:00
Steven Allen
5f3160cf5b
continue expanding vm abstraction layer
2020-09-28 12:48:08 -07:00
whyrusleeping
bddd6dd8a8
fix GetPower with no miner address
2020-09-26 11:06:16 -05:00
Aayush Rajasekaran
12e97dbea7
Fix docs and linter
2020-09-26 02:59:24 -04:00
Łukasz Magiera
ef28ebb14a
Ignition upgrades, much excite.
2020-09-25 23:55:37 -07:00
Steven Allen
8b35f480c4
initial vm conversion
...
We're probably going to want to change some of these design decisions down the
road, but this is a good starting point.
* We may want to use a more general test for "is actor valid at epoch". Maybe
just a function?
* I'd like to push some of the actor metadata down into the actor types
themselves. Ideally, we'd be able to register actors with a simple
`Register(validation, manyActors...)` call.
2020-09-25 12:49:39 -07:00
Steven Allen
87351fa35c
move version to actors, from builtin
...
Otherwise, we're going to end up with an import cycle between the adt and this
version.
2020-09-25 12:49:39 -07:00
Steven Allen
858f11992f
compile fix
2020-09-25 12:49:39 -07:00
Aayush Rajasekaran
ebad0ded3d
Introduce v1 actors
2020-09-25 12:49:39 -07:00
Steven Allen
32a699d6a3
Add some actors policy setters for testing
...
Addresses:
* a307e4593a (r491966115)
* a307e4593a (r491966634)
Note: This puts everything into a policy package to avoid a dependency cycle
between the build package, the miner package, and the types package. This is
also why I introduced a GetPreCommitChallengeDelay function and removed the
variable.
2020-09-23 15:00:52 -07:00
Aayush Rajasekaran
a876a0ba44
Use actor state addresses
2020-09-23 02:32:40 -04:00