Commit Graph

280 Commits

Author SHA1 Message Date
Steven Allen
bb54dc97b6 Fix incorrect ID CID optimization
Blocks inlined into CIDs can technically contain CIDs themselves. I'm guessing
this check was trying to skip "actor" CIDs (inline cids with raw blocks).
2020-07-23 23:22:44 -07: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
Łukasz Magiera
d70edbcb7c Set things on syscallShim 2020-07-22 13:35:10 -04:00
Jakub Sztandera
7d83349507
Format FIL as FIL
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-22 17:50:34 +02:00
Jakub Sztandera
b3bac0c9e8
Add better error messages for message pre-execution errors
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-22 17:50:34 +02:00
Łukasz Magiera
0ded061037 Get math to work 2020-07-18 00:15:21 +02:00
Łukasz Magiera
cb6767a02b Merge remote-tracking branch 'origin/next' into feat/actors-miner-refactor 2020-07-17 15:18:11 +02:00
Peter Rabbitson
e266f3b955 Bump fil-commcid and filecoin-ffi deps
Propagates correct on-chain commX CIDs
2020-07-17 00:38:42 +02:00
Jakub Sztandera
610ed0dc13
Change OnIpldGet
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-15 21:40:49 +02:00
Jakub Sztandera
c0eb4b39ac
Reorg some gas charges
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-15 20:01:56 +02:00
Raúl Kripalani
0484496d92 Merge branch 'next' into mock-clock 2020-07-14 18:08:26 +01:00
Łukasz Magiera
faebc4c948 WIP Integrating specs-actors with refactored miner state 2020-07-14 13:45:45 +02:00
Łukasz Magiera
c1048a0353 vm: Separate logger for actors 2020-07-13 12:29:27 +02:00
Raúl Kripalani
13de81b3b2 introduce the ability to mock time. 2020-07-10 15:51:45 +01:00
Jakub Sztandera
9936439608
Merge remote-tracking branch 'origin/master' into next
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-03 14:56:06 +02:00
Jakub Sztandera
c68a8f802e
Adjust gas
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:33 +02:00
Jakub Sztandera
bc88c632d1
Fix previous commit
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:33 +02:00
Jakub Sztandera
1e17ea3fff
Adjust gas values
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:33 +02:00
Jakub Sztandera
a2fd0aad41
More on OnActorExec
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:31 +02:00
Jakub Sztandera
01ac4e5da3
Gas on actor exec
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-07-02 18:47:30 +02:00
Łukasz Magiera
a6d1323eba Update specs-actors to v0.7.0; More correct genesis sector import 2020-06-26 15:08:12 +02:00
Jakub Sztandera
91ea039077
Change ellipsis, more accurate timing
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-12 20:46:04 +02:00
Jakub Sztandera
cd69e57a33
Expose more callers, ellipsis unimportant ones
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-12 18:49:29 +02:00
Jakub Sztandera
c90d35869b
Add gas tracing
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-11 21:59:39 +02:00
Jakub Sztandera
6acc9a62f8
Split gas internally into compute gas and storage gas
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-11 20:37:14 +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
5605aae269
Fix even more lint warnings
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-06-02 16:29:39 +02:00
Aayush Rajasekaran
7dd25c3ac5 Correctly handle transfers with sender = receiver 2020-05-29 12:15:41 -04: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
9165f14693 feedback: fatal errors in vm.transfer 2020-05-18 12:00:52 -07:00
frrist
0c2e4e2d4f return correct exitcodes from vm transfer 2020-05-18 12:00:52 -07:00
Aayush Rajasekaran
6bf2dcd97c Message validation changes 2020-05-11 21:54:44 -04:00
Aayush Rajasekaran
187e386740 Bugfix: Correctly transfer gas when failing to charge for retValue 2020-05-06 16:53:32 -04:00
Jeromy
a553d438c0 dont override exit codes for actor creation failure 2020-05-04 16:31:26 -07:00
frrist
c66415ae4c fix: insufficient gas remaining to cover retval
proceed as in the case of method execution failure.
2020-04-29 16:38:34 -07:00
Aayush Rajasekaran
5900d765fd caller must be validated exactly once 2020-04-28 00:07:47 -04:00
Aayush Rajasekaran
e46c4652a5 Forbid internal message in State Transaction() 2020-04-25 02:01:26 -04:00
Aayush Rajasekaran
832657edfb Eliminate use of SysErrInternal, some interop changes 2020-04-25 01:55:59 -04:00
Jeromy
7ee42e61d5 add command to analyze import bench output 2020-04-23 16:48:54 -07:00
Aayush Rajasekaran
14ad808a00 Remove unused fields from VM 2020-04-16 15:34:01 -04:00
Łukasz Magiera
70d654e4a6 Merge pull request #1527 from filecoin-project/feat/drand
Initial randomness beacon implementation
2020-04-09 19:48:09 +02:00
Aayush Rajasekaran
17e9feb633 Sever the API's dependency on VM 2020-04-08 18:27:31 -04:00
Jeromy
8e0ca306d2 more wiring up of drandomness 2020-04-08 08:11:42 -07:00
Jeromy
4c6fa1b2c0 handle some runtime error edge cases 2020-04-03 14:38:11 -07:00
Jeromy
212c346c21 avoid flushing disk when doing state tree snapshots 2020-04-02 17:18:25 -07:00
Łukasz Magiera
11777c5f24 Merge pull request #1502 from filecoin-project/feat/import-bench
add a command to lotus-bench to benchmark importing and validating
2020-04-03 01:30:12 +02:00
Jeromy
beaa3dffab add a command to lotus-bench to benchmark importing and validating a chain 2020-04-02 16:18:38 -07:00
Jeromy
8a265a0e8d use exitcode type from specs actors instead of byte 2020-04-02 11:24:38 -07:00
Jeromy
97a7b449e6 use charge gas safe in places we return errors 2020-03-27 10:11:21 -07:00
Jeromy
672956af5d addressing review 2020-03-26 20:13:32 -07:00
Travis Person
090261f304 Revert gas exhausted exit code to SysErrOutOfGas 2020-03-27 00:19:34 +00:00
Jakub Sztandera
06cfbf5742 Switch exitcodes
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-26 22:11:06 +01:00
Jakub Sztandera
300c89f541 Update to new sepcs actors, more debug
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-26 01:02:13 +01: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
490f85e690 Send implicit messages for block rewards, cron ticks, state calls, and genesis setup 2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
ad15750be3 Charge sender no gas, and penalise miner for certain invalid messages 2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
09a46e5d80 fix some gas charge bugs, and make our new account actor creation follow GFC 2020-03-25 08:25:03 -04:00
Aayush Rajasekaran
df13cfa52b Only resolve origin to pubkey address when creating a new account actor 2020-03-24 04:43:09 -04:00
Aayush Rajasekaran
9ccc02d664 Load actor states afresh before making state changes
- Not doing this is causing bugs when reverting, since the actor cache gets reset
2020-03-24 03:33:22 -04:00
Jeromy
2228f13f99 a couple vm fixes 2020-03-23 18:50:58 -07:00
Jeromy
6fe245a278 use proper exitcodes for caller validation 2020-03-23 18:50:28 -07:00
Aayush Rajasekaran
05d43af3fc Only try to resolve origin address during top-level invocation 2020-03-23 18:50:28 -07:00
Jeromy
8bc4195b7a WIP: updating and getting chainval tests passing 2020-03-23 18:50:18 -07:00
Łukasz Magiera
eeec5a1bba Merge pull request #1274 from filecoin-project/feat/doc/actors
doc: add comments related to actor code review
2020-03-23 12:49:41 +01:00
Whyrusleeping
a3fd1d4b51 Merge pull request #1401 from filecoin-project/fix/nonce-miss-no-gas
Missmatching nonce does not charge gas
2020-03-20 14:56:33 -07:00
whyrusleeping
84fd969710 take snapshot after gas transfer so its not reverted on method failure 2020-03-20 13:50:46 -07:00
Jakub Sztandera
4ba4de3379 Missmatching nonce does not charge gas
It should charge miner but we don't have that mechanism yet.

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-20 20:44:45 +01:00
Aayush Rajasekaran
ef288b8a6c Calculate new actor addresses as per updated spec 2020-03-20 15:43:08 -04:00
Jakub Sztandera
ae40654907 Rework gas charging 2020-03-20 03:26:40 -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
Aayush Rajasekaran
51cf5d5f1b New Actor Addresses should be generated as per spec
- The pubkey address address of the sender should be used, not the ID address
- We should use the internal callSeqNum as input (was hard-coded to zero)
- The external message nonce should be used, not the actor's nonce in the post-increment state
2020-03-18 02:57:11 -04:00
Jakub Sztandera
f3c4288311 Check for correct nonce before taking gas
Otherwise as a miner you are able to include an invalid message forever
and get whole GasLimit of gas from it every time.

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-03-10 21:14:50 +01:00
whyrusleeping
85e17fa5b0 fix state cid accounting after 'Transaction' calls 2020-03-09 22:20:46 -07:00
whyrusleeping
114cb2d2aa squash the spec shim and the vmcontext into the new runtime type 2020-03-09 21:44:29 -07:00
whyrusleeping
24bf720a9a Merge branch 'master' into testnet/3 2020-03-07 16:46:12 -08:00
whyrusleeping
34ad13fc22 fix initial reward actor balance 2020-03-06 17:33:24 -08:00
Aayush Rajasekaran
340afc3503 Add information about internal message executions to SimulationResult
- The VM now tracks a list of ExecutionResults to keep track of internal messages
2020-03-06 11:11:06 -08:00
whyrusleeping
16096e2c71 some go vet fixes 2020-03-05 22:46:07 -08:00
frrist
a34a6c65e7 fix gas limit check in apply message 2020-03-05 13:41:35 -08:00
whyrusleeping
4e9e3f3dc3 make state tree snapshots properly stack based 2020-03-04 17:19:15 -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
0945d8725e fixing miner logic to make more tests pass 2020-02-28 11:31:28 -08:00
Łukasz Magiera
ae634ef7df actors: Remove addrass aliases 2020-02-25 21:54:58 +01:00
Łukasz Magiera
917df9a5b8 More unified randomness handling 2020-02-23 21:00:47 +01:00
Łukasz Magiera
a82d156ccb Deal flow fixes 2020-02-23 16:50:36 +01:00
Łukasz Magiera
b8428423a1 get chain to runnable state 2020-02-22 14:10:46 +01:00
Łukasz Magiera
57c43183e6 update specs-actors 2020-02-21 17:57:40 +01:00
Łukasz Magiera
835e3d803f vm: don't follow replica CIDs in copy 2020-02-19 20:39:00 +01:00
Łukasz Magiera
e9019c8bcc Working Genesis Generator 2020-02-18 22:38:08 +01:00
whyrusleeping
6d0eec6395 working towards a working genesis generator 2020-02-17 23:15:30 -08:00
Łukasz Magiera
038582ba44 vm: Fix getActorCode 2020-02-17 22:11:03 +01:00
Łukasz Magiera
0d6cfc879d Use specs-actors ignatures 2020-02-13 00:52:36 +01:00
Łukasz Magiera
0aaf7b25a9 Propagate spec actor types more 2020-02-12 08:44:20 +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
Łukasz Magiera
cbf63aab1e Merge branch 'master' into testnet/3 2020-02-05 21:27:04 +01:00
whyrusleeping
028a113737 Make it all build 2020-02-04 14:19:05 -08:00
Jakub Sztandera
5e6ab42cb8
Don't depend on ffi
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-02-04 15:12:04 +01:00
whyrusleeping
dfe87c9f6f update to latest hamt changes 2020-02-03 18:52:18 -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
dcd01df2d3 wire up tracing into state tree flush, add pprof flag 2020-01-22 11:53:06 -08:00
Travis Person
68f8d60323 Adding fields to warning in vm ApplyMessage (#1090)
* Adding fields to warning in vm ApplyMessage
2020-01-16 01:36:16 +01: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
whyrusleeping
e41dbdad90 reduce most vm errors to non-fatal, explicitly mark disk issues as fatal 2020-01-07 19:46:55 -08: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
f7604b84f7
Merge pull request #965 from filecoin-project/feat/no-fatal-serialization
make serialization error non-fatal
2019-12-19 22:04:27 +01:00
Łukasz Magiera
81233b894d Implement 'chain get' for easier ipld digging 2019-12-19 17:58:02 +01:00
whyrusleeping
897d4c7d24 make serialization error non-fatal 2019-12-17 19:41:58 -08:00
whyrusleeping
d2448912a6 Implement basic fault handling
WIP: miner actor tests

working miner actor test

rebase and fix tests
2019-12-09 20:53:43 +01:00
whyrusleeping
613a0a05a0 more of that sweet staticcheck goodness 2019-12-04 18:04:09 -08:00
whyrusleeping
cac44367aa add batching to vm Copy call 2019-11-17 11:50:04 -06:00
whyrusleeping
ab2e722811 use fast cbor-gen method for extracting links from objects 2019-11-16 11:24:11 -08:00
whyrusleeping
9e464a4b90 more tracing spans 2019-11-12 12:42:22 -08:00
whyrusleeping
68de42df8c increase actor error log verbosity 2019-11-01 23:30:06 -07:00
Łukasz Magiera
72af55d067 deals: Price per epoch 2019-10-29 11:01:18 +01:00
Łukasz Magiera
6d766ab241 Set e=3 2019-10-28 19:22:40 +01: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
fc7c7ddd97 Initial pass at a peer manager 2019-10-23 12:47:22 +02:00
Łukasz Magiera
46a0333c9c on chain deals: Wip porting deal systems to storagemarket 2019-10-23 12:44:00 +02:00
waynewyang
fab4777b8f Delete TransferFunds Method 2019-10-23 13:22:03 +08:00
waynewyang
f99c11e048 fix method: VM.send 2019-10-22 20:37:04 +08:00
waynewyang
2d4c5daa93 fix annotation for vm 2019-10-22 16:14:10 +08:00
whyrusleeping
63b81af23e handle changing default address 2019-10-18 20:42:00 +09: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
whyrusleeping
ab6ef85b6d More tracing! 2019-10-16 19:24:33 +09:00
Łukasz Magiera
fb80d75b07 Almost building weight function 2019-10-15 14:31:34 +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
whyrusleeping
80d306de14 check transfer amounts are positive values 2019-10-12 15:57:49 +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
Jakub Sztandera
991ab167fe
Fix vm log
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2019-10-04 22:57:59 +02:00
whyrusleeping
f9ac86ab00 the doneset is for dropping sectors 2019-10-04 12:30:30 -06:00
Jakub Sztandera
76ab2e8a7b De-javify
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-09-28 00:02:02 +02:00
Jakub Sztandera
b90f45fa60 Change build params
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-09-27 23:42:12 +02:00
Whyrusleeping
b611637652
Apply suggestions from code review
Co-Authored-By: Łukasz Magiera <magik6k@users.noreply.github.com>
2019-09-27 13:47:10 -07:00
whyrusleeping
639139795b remember why the go big math library works the way it does 2019-09-26 16:09:10 -07:00
Jakub Sztandera
ef5e7674db Use incremental alg for rewards
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-09-27 00:33:38 +02:00
whyrusleeping
2f35a23f0f fix block reward math 2019-09-23 21:15:18 -07:00
whyrusleeping
47d12417b3 working on correct block reward 2019-09-23 21:15:18 -07:00
Łukasz Magiera
5ce15bfaf4 types: Less/GreaterThan for bigints 2019-09-23 19:11:44 +02:00
Łukasz Magiera
f357becc8a statetree: add actor to actcache in SetActor 2019-09-23 11:45:22 +02:00
Łukasz Magiera
4202da62cd
Merge pull request #216 from filecoin-project/feat/consensus-slashing
Feat/consensus slashing
2019-09-20 16:58:03 +02:00
Łukasz Magiera
9d36a499b6 post merge fixes 2019-09-20 14:22:46 +02:00
whyrusleeping
b3a0ec9155 resolve review note 2019-09-19 23:47:09 -07:00
whyrusleeping
fe020d9fd1 implement SlashConsensusFault 2019-09-19 22:23:24 -07:00
whyrusleeping
394edc6317 refactor to use 'randomness' as input to new vm creation 2019-09-19 20:08:44 -07:00