Commit Graph

265 Commits

Author SHA1 Message Date
Łukasz Magiera
683a58195e More terraforming in chain/ 2020-09-14 14:46:38 +02:00
Łukasz Magiera
68097132fe Fix vm build 2020-09-14 13:45:20 +02:00
Steven Allen
d3594835c4 [WIP] Network upgrade support
This patch starts adding support for network upgrades.

* It adds an actors abstraction layer for loading abstract (cross-version) actors.
* It starts switching over to a shared deadline type.
* It adds an abstraction for ADTs (hamt/amt).
* It removes the callback-based API in the StateManager (difficult to abstract
across actor versions).
* It _does not_ actually add support for actors v2. We can do that in a followup
patch but that should be relatively easy.

This patch is heavily WIP and does not compile. Feel free to push changes
directly to this branch.

Notes:

* State tree access now needs a network version, because the HAMT type will change.
* I haven't figured out a nice way to abstract over changes to the _message_
types. However, many of them will be type aliased to actors v0 in actors v2 so
we can likely continue using the v0 versions (or use the v2 versions
everywhere). I've been renaming imports to `v0*` to make it clear that we're
importing types from a _specific_ actors version.

TODO:

* Consider merging incremental improvements? We'd have to get this compiling
again first but we could merge in the new abstractions, and slowly switch over.
* Finish migrating to the new abstractions.
* Remove all actor state types from the public API. See `miner.State.Info()` for
the planned approach here.
* Fix the tests. This is likely going to be a massive pain.
2020-09-11 20:16:29 -07:00
Aayush Rajasekaran
beba92aed4 Improve network versioning logic 2020-09-10 17:41:55 -04:00
Aayush Rajasekaran
86ba21029d Update to go state types 001afaca718c 2020-09-10 17:41:55 -04:00
whyrusleeping
8a8f0ab3ec pass tipset through upgrade logic 2020-09-08 13:45:44 -07:00
Aayush Rajasekaran
45011c0fad Use latest version if no upgrade height is specified 2020-09-07 17:43:14 -04:00
Aayush Rajasekaran
6eea5dd109 Update to specs 0.9.7 and markets 0.6.0 2020-09-07 17:11:32 -04:00
Aayush Rajasekaran
39755a294a Update to specs v0.9.6 2020-09-07 15:48:41 -04:00
austinabell
ba881eb4cf
Remove height from chain rand 2020-09-01 15:48:16 -04:00
Łukasz Magiera
e47e51275a
Merge pull request #3138 from filecoin-project/feat/remainder
place the remainder of unallocated funds in a 'remainder' account
2020-08-18 23:52:19 +02:00
Łukasz Magiera
71aa3a59d9
Merge pull request #3047 from filecoin-project/asr/burn-genesis
Do not include the burnt funds actor as a genesis account actor
2020-08-18 23:10:32 +02:00
Łukasz Magiera
d23cd2e507
Merge pull request #3136 from filecoin-project/asr/genesis-hardcode
Create a testnet version of setupGenesisActors
2020-08-18 21:21:04 +02:00
Aayush Rajasekaran
214eeccb18 Create a testnet version of setupGenesisActors 2020-08-18 13:56:47 -04:00
Aayush Rajasekaran
8942c02f28 Add a reminder comment 2020-08-18 06:01:48 -04:00
whyrusleeping
13e5b72cdb proper genesis block history
Commit hash originally stamped into the ethereum blockchain:
https://etherscan.io/tx/0xe8f51c9eefb682cd866f059462577b6dd3d2685ff4b6437f6c940ff4f4aaf067
2020-08-17 21:13:43 -07:00
Aayush Rajasekaran
0359a458e4 Include more info in StateCirculatingSupply 2020-08-14 16:53:30 -04:00
Aayush Rajasekaran
5702ea236c Do not include the burnt funds actor as a genesis account actor 2020-08-13 20:19:47 -04:00
Aayush Rajasekaran
5b280057b8 Move genesis locked funds into filVested 2020-08-12 16:16:35 -04:00
Aayush Rajasekaran
b6b5a79833 Get FilMined from the reward actor's state, not balance 2020-08-12 15:32:11 -04:00
Aayush Rajasekaran
165bcc1e38 Extract stmgr's genesis infos into a new struct 2020-08-12 15:32:11 -04:00
Aayush Rajasekaran
48ab706691 Subtract out genesis pledge and market funds when calculating circ supply 2020-08-12 15:32:11 -04:00
Aayush Rajasekaran
fe2da35a45 Move GetCircSupply out of the vm, and into stmgr 2020-08-12 15:32:07 -04:00
Aayush Rajasekaran
5933e64de1 Include premined actors in vested funds calculation 2020-08-12 15:19:48 -04:00
Łukasz Magiera
e2c6cc6c6d
Merge pull request #2958 from filecoin-project/asr/sync-test
MessagesForTipset should filter out bad nonce messages
2020-08-12 13:05:57 +02:00
Aayush Rajasekaran
532c32a741 Add new BlockMsgsForTipset() 2020-08-10 15:55:44 -04:00
Łukasz Magiera
bc381fc053 stmgr: Allow changing gas values in WaitMsg 2020-08-10 14:55:52 +02:00
Jakub Sztandera
ab08858b45
Delete GasPrice from this world
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 23:08:42 +02:00
Jakub Sztandera
b384ac6943
Compute correct base burns, miner tip and so on
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 21:14:38 +02:00
Jakub Sztandera
722d6e8ffb
Introduce base fee
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-08-06 21:14:38 +02:00
Łukasz Magiera
4cb4e7c2c2 Merge remote-tracking branch 'origin/master' into next 2020-07-31 14:02:04 +02:00
Aayush Rajasekaran
b51e2a868b
Merge branch 'next' into feat/cid-builder 2020-07-28 21:02:30 -04:00
Aayush Rajasekaran
890f56ac38 Lock before setting up genesis msigs 2020-07-28 20:35:40 -04:00
Aayush Rajasekaran
de867d7a9a Correct calculation of TotalCircSupply 2020-07-28 17:26:55 -04:00
Łukasz Magiera
fb59b40507 Fix some tests 2020-07-28 18:16:56 +02:00
Łukasz Magiera
473a1f91d5 Update specs-actors to 33f4d6e 2020-07-28 16:36:32 +02:00
Łukasz Magiera
09b90773d8 Merge remote-tracking branch 'origin/next' into feat/cid-builder 2020-07-28 16:06:06 +02:00
Łukasz Magiera
ca36519325 stmgr: Bigger number for cron gas limit 2020-07-28 14:32:30 +02:00
Łukasz Magiera
eac0a1bba9 stmgr: Handle state forks with cron on null blocks correctly 2020-07-28 14:31:28 +02:00
Łukasz Magiera
8889c5cfd3 stmgr: Dedupe cron invocation 2020-07-28 02:28:22 +02:00
Łukasz Magiera
5b6006f8fe stmgr: Execute cron tick on null rounds 2020-07-28 02:25:16 +02:00
Simon Peffers
0f3105a01f Integrate blst signature library: https://github.com/supranational/blst 2020-07-25 21:38:18 -04:00
Steven Allen
b7a4dbb07f Support inline CIDs
And use the new CidBuilder from the spec actors.

This patch does not switch over to inline CIDs by default, but paves the way.
2020-07-23 23:12:32 -07:00
Steven Allen
5fc83f4d05 Refactor to use actor adt types instead of directly using HAMTs and AMTs
This way there's a single source of truth. Preparation for fixing
https://github.com/filecoin-project/specs-actors/issues/517 (requires changing
HAMT parameters).
2020-07-23 09:34:57 -07:00
Łukasz Magiera
d70edbcb7c Set things on syscallShim 2020-07-22 13:35:10 -04:00
Jakub Sztandera
1b5797be9d
Merge pull request #2456 from filecoin-project/feat/increase-cron-gas
Increase cron gas
2020-07-17 20:11:21 +02:00
Jakub Sztandera
aafafce083
Increase cron gas
Make gas check overflow safe
2020-07-17 19:49:55 +02:00
Łukasz Magiera
5a3ab5c5f0 More actor updates 2020-07-16 14:48:20 +02:00
Łukasz Magiera
faebc4c948 WIP Integrating specs-actors with refactored miner state 2020-07-14 13:45:45 +02:00
Aayush Rajasekaran
8e7ac226b0 Include WinCount when awarding block rewards 2020-06-26 14:27:49 -04:00
Jakub Sztandera
4895c895aa
Change WinCount to int64, wire it to BlockMessage
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-24 19:51:22 +02:00
Łukasz Magiera
907364ce67 Update deps, fix more tests 2020-06-15 18:30:49 +02:00
Jakub Sztandera
c3f23ddce8
Refactor ExecutionResult to ExecutionTrace
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-11 15:53:47 +02:00
Jakub Sztandera
7bee5b3abc
Merge remote-tracking branch 'origin/master' into next
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-05 00:33:43 +02:00
Łukasz Magiera
f9f0d86ddf
Merge pull request #1913 from acruikshank/feat/1853-confirmations-in-StateWaitMsg2
Add confidence and timeout to message wait
2020-06-04 23:23:15 +02:00
acruikshank
ce33074626 go fmt 2020-06-03 22:30:09 -04:00
acruikshank
04f0130530 remove timeout 2020-06-03 17:42:06 -04:00
acruikshank
5574e4f11b add confidence and timeout to message wait 2020-06-03 15:38:37 -04:00
Aayush Rajasekaran
4b01b666f6 Bugfix: searchback for a message should stop if we reach sender nonce of 0 2020-06-03 14:08:05 -04:00
Jakub Sztandera
96ade5f2dd
Cleanup more lint warnings
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-02 18:38:41 +02:00
Jakub Sztandera
5605aae269
Fix even more lint warnings
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-02 16:29:39 +02:00
Jakub Sztandera
d6615b6286
Cleanup many lint warnings
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-05-27 22:53:20 +02:00
Frrist
0f0589bcf5 Update validation driver to match latest in chain-validation (#1532)
* update driver to match new chain-validation interfaces

* update chain-validation

* update filecoin-ffi

* gofmt

* update chain-validation again
2020-04-24 15:08:16 -07:00
Łukasz Magiera
93b2b6d65d Merge branch 'testnet/3' into feat/windowed-post 2020-04-17 18:38:20 +02:00
Aayush Rajasekaran
14ad808a00 Remove unused fields from VM 2020-04-16 15:34:01 -04:00
Łukasz Magiera
bb3789b130 Fix ADT uses 2020-04-13 23:06:11 +02:00
Jakub Sztandera
ce4978d8c3 Reintroduce correct ticket randomness alongside ElectionProof
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-04-08 21:06:41 +02:00
Jeromy
8e0ca306d2 more wiring up of drandomness 2020-04-08 08:11:42 -07:00
Jeromy
beaa3dffab add a command to lotus-bench to benchmark importing and validating a chain 2020-04-02 16:18:38 -07:00
whyrusleeping
aa23266c6f use gas used in block rewards 2020-04-01 21:16:16 -07:00
Jeromy
088d693eea code review changes 2020-03-25 12:13:09 -07:00
Aayush Rajasekaran
ebcefa80e3 provide msg length to vm::ApplyMessage 2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
c951e0cc83 do not reprocess duplicate messages in a block 2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
3896631a1c Remove pre-execution validity checks on messages 2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
490f85e690 Send implicit messages for block rewards, cron ticks, state calls, and genesis setup 2020-03-25 08:25:03 -04:00
Whyrusleeping
60ea9e6ec8 Merge pull request #1426 from filecoin-project/asr/statewait
Re: #1412: Add a non-blocking version of StateWaitMsg
2020-03-24 16:17:47 -07:00
Aayush Rajasekaran
d350a9d415 Re: #1412: Add a non-blocking version of StateWaitMsg
- This commit adds a new method called StateSearchMsg
- We can probably overhaul StateWaitMsg onto this new method at a later point in time
2020-03-24 06:43:15 -04:00
Aayush Rajasekaran
753e8ff7f5 Award gas fees to miners correctly 2020-03-24 03:35:58 -04:00
Lucas Molas
d21cb96ddb doc: add comments related to actor code review 2020-03-18 16:43:58 -07:00
whyrusleeping
ddf1beac6c change gas limit to be a normal int64 2020-03-18 13:45:37 -07:00
whyrusleeping
16d087cce4 get fallback post running successfully! 2020-03-10 23:30:48 -07:00
whyrusleeping
f1ff55f8b6 pass ticket count into reward application message 2020-03-09 00:45:40 -07:00
whyrusleeping
4260cc38c9 implement compute state trace output 2020-03-08 20:07:25 -07:00
whyrusleeping
2cd06e3ea0 update to latest specs-actors 2020-03-05 13:02:33 -08:00
whyrusleeping
5076b2b950 fix reward actor and block reward application 2020-03-04 13:21:24 -08:00
whyrusleeping
0da2f81252 get most of the chain validation tests passing 2020-03-03 16:06:41 -08:00
whyrusleeping
0f6c365411 Do proper shimming for chain validation library 2020-03-03 16:06:41 -08:00
Łukasz Magiera
ae634ef7df actors: Remove addrass aliases 2020-02-25 21:54:58 +01:00
Łukasz Magiera
cd10a3126b actors: drop a bunch of type aliases 2020-02-25 21:35:15 +01:00
Łukasz Magiera
a82d156ccb Deal flow fixes 2020-02-23 16:50:36 +01:00
whyrusleeping
00d7bd1a77 chain/gen tests now pass! 2020-02-20 00:37:10 -08:00
Łukasz Magiera
c69c9e62c2 stmgr: Correctly read sectorset 2020-02-19 21:34:21 +01:00
whyrusleeping
6d0eec6395 working towards a working genesis generator 2020-02-17 23:15:30 -08:00
Łukasz Magiera
c544c2b5c5 Set hamt bitwidth 2020-02-14 15:14:39 +01:00
Łukasz Magiera
48c5494cf9 use specs-actors birfields 2020-02-14 01:24:24 +01:00
Łukasz Magiera
0aaf7b25a9 Propagate spec actor types more 2020-02-12 08:44:20 +01:00
Łukasz Magiera
4d5c4d89ce stmgr: Update stmgr utils 2020-02-11 03:33:27 +01:00
Łukasz Magiera
91ca4a841a specs-actors: Import miner/power/cron/paych code 2020-02-11 02:43:26 +01:00
Łukasz Magiera
13435aebdc Spec Actors integration 2020-02-08 03:18:32 +01:00
whyrusleeping
faf05cafcf squash forks and use correct amt library everywhere 2020-02-04 18:26:42 -08:00
whyrusleeping
028a113737 Make it all build 2020-02-04 14:19:05 -08:00
whyrusleeping
01b6ddbbd3 add a test to ensure there are no off-by-one errors in fork activation logic 2020-01-31 15:52:39 -08:00
whyrusleeping
955b755055 wire up importing 2020-01-20 17:53:55 -08:00
Łukasz Magiera
a2bcc1fec2 Mostly functional mock sectorbuilder 2020-01-14 03:05:35 +01:00
Jakub Sztandera
1ed62628a7
Update go-log to v2
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-01-08 20:22:31 +01:00
hannahhoward
8418464d91 refactor(address): use extracted address library
Switch to using extracted address library
2020-01-07 14:53:27 +01:00
Łukasz Magiera
6ce4cf12f7 Care about nullblocks in handleStateForks 2019-12-19 21:01:05 +01:00
Łukasz Magiera
3f54cbabe0 FORK: No power EPS Fix 2019-12-19 19:47:25 +01:00
Łukasz Magiera
44f3a501ab
Merge pull request #783 from filecoin-project/fix/bad-epost-mining
Fix/bad epost mining
2019-12-09 18:27:24 +01:00
whyrusleeping
e8c43d00cc dont waste work when calling ComputeTipSetState in parallel 2019-12-08 18:07:44 +01:00
whyrusleeping
8181b283c0 don't accept blocks from slashed miners 2019-12-07 18:59:34 +01:00
whyrusleeping
e6a08784f8 print more errors if epost fails during tipset state evaluation 2019-12-07 17:24:42 +01:00
Łukasz Magiera
38eedd05e8 stmgr: Mute duplicate msg in tipset spam 2019-12-05 19:59:51 +01:00
Łukasz Magiera
5810922441 This helps for some reason 2019-12-03 17:39:47 +01:00
Whyrusleeping
dd6e75f49d
Merge pull request #666 from filecoin-project/feat/election-post
Election post restructuring
2019-12-02 15:32:12 -08:00
Łukasz Magiera
849b9741d9
Merge pull request #673 from filecoin-project/feat/cron
actors: Implement cron actor
2019-12-02 12:11:04 +01:00
Łukasz Magiera
adf71f502c don't print scary errors when miner has no sectors 2019-11-29 20:14:10 +01:00
whyrusleeping
8fae155cf6 Add timings for proof verification 2019-11-27 19:43:52 -06:00
Łukasz Magiera
23e0008b81 Merge remote-tracking branch 'origin/master' into feat/election-post 2019-11-27 13:31:44 +01:00
laser
3623925f66 replace go-bls-sigs and go-sectorbuilder with filecoin-ffi
- remove old submodules and add new submodule
- update build tooling to consume new unified static library
- update consumers of old libs to use new package
2019-11-26 18:16:37 -08:00
Łukasz Magiera
67b22ac22e stmgr: Fix WaitMessage with more than one msg from single origin 2019-11-25 14:59:12 +01:00
whyrusleeping
a0588d513d Add lotus-gen, rewire genesis mining 2019-11-24 22:45:13 -06:00
Łukasz Magiera
a755ca5dae stmgr: check for duplicate nonces when looking back for msg 2019-11-24 20:16:18 +01:00
Łukasz Magiera
96023d415e actors: Implement cron actor 2019-11-22 23:51:44 +01:00
Łukasz Magiera
ddf2e05dd0 post: More correct 'wait' logic 2019-11-20 18:00:05 +01:00
whyrusleeping
f8eabd3db4 Refactor mining logic to match specs ticket chain 2019-11-20 10:52:36 -06:00
Łukasz Magiera
004f647504
Merge pull request #597 from filecoin-project/feat/simple-power-slash
Simple power slashing
2019-11-15 01:14:20 +01:00
Jakub Sztandera
c54b28a419
Check if miner is included twice in tipset
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-11-15 01:01:00 +01:00
郭光华
dd439e0af8
Keep the context consistent 2019-11-14 14:34:54 +08:00
Łukasz Magiera
2dd155e9e9 Make basic slashing work 2019-11-14 01:02:24 +01:00
Łukasz Magiera
7363ec714a chain: make tests pass after slashing changes 2019-11-14 00:35:58 +01:00
Łukasz Magiera
0241e31129 chain: wire CheckProofSubmissions to computeTipSetState 2019-11-14 00:14:11 +01:00
whyrusleeping
86624c8ed4 fix tests and add some more trace attributes 2019-11-12 22:44:29 -08:00
Łukasz Magiera
eeca3d86df
Merge pull request #415 from filecoin-project/feat/deals-on-chain
On-Chain deals
2019-10-25 17:03:25 +02:00
whyrusleeping
acb7d57794 fix handling of actor not found for balance checks 2019-10-24 15:55:00 +08:00
Łukasz Magiera
fabd074165 on chain deals: Deals make it to the chain 2019-10-23 19:39:14 +02:00
Jakub Sztandera
7532f92c98
Cleanup GetBalance call and warn if actor does not exist
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-22 21:58:51 +02:00
Jakub Sztandera
1bf713cb0a
Cleanup imports after rename
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-18 13:47:41 +09:00
Łukasz Magiera
fb80d75b07 Almost building weight function 2019-10-15 14:31:34 +02:00
Jakub Sztandera
68db93b62e
More if not needed
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-13 03:08:05 +02:00
whyrusleeping
45737f8a51
add more tracing spans
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-13 03:07:55 +02:00
Łukasz Magiera
704f06761a
Merge pull request #347 from filecoin-project/feat/list-miners-cmd
implement commands to list actors and miners
2019-10-12 09:10:19 +02:00
whyrusleeping
edcf47ff31 implement commands to list actors and miners 2019-10-12 15:45:48 +09:00
whyrusleeping
a56e786e36 some cleanup of vm transfer logic to make juan happier 2019-10-11 18:13:04 +09:00
whyrusleeping
3f342d7ae2 add some more tracing to chain sync 2019-10-10 20:13:26 +09:00
whyrusleeping
8e51ab8375 don't bother looking in genesis block for messages 2019-10-09 17:56:47 +09:00
whyrusleeping
14c4a8bee6 implement looking in the past for messages 2019-10-09 09:33:18 +02:00
whyrusleeping
249074761c verify message signatures during block validation 2019-10-09 11:58:49 +09:00
whyrusleeping
f15557649f leave better rationale for the special case in TipSetState 2019-10-02 14:27:41 -06:00
whyrusleeping
c0e6e611be clean up usage of stmgr.TipSetState 2019-10-02 14:03:27 -06:00