Commit Graph

920 Commits

Author SHA1 Message Date
Aarsh Shah
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
Jennifer Wang
c37241c733 resolve conflicts and docsgen 2021-08-16 16:26:50 -04:00
Jennifer Wang
263ae6f99f update version 2021-08-16 16:21:06 -04:00
Jennifer Wang
e397a079c1 docsgen 2021-08-13 23:42:59 -04:00
Jennifer Wang
4bcf159381 v1.11.1-rc3 2021-08-13 23:16:03 -04:00
ZenGround0
f34631facc Fix docsgen 2021-08-13 00:00:56 -04:00
ZenGround0
8c9321ce7b revert pricelist by version to pricelist by epoch 2021-08-12 23:58:20 -04:00
Raúl Kripalani
85a4f8325f fix docs and nits. 2021-08-12 22:08:20 -04:00
Anton Evangelatov
e90e71456b add RuntimeSubsystems API method; use it in lotus-miner info 2021-08-12 22:05:08 -04:00
Steven Allen
dcff06bd91 test: genesis actors version
Properly handle genesis in actors tests. Fast-forward upgrading to
actors v13 doesn't work because there needs to be at least a day between
v0 genesis and v13 (due to differences in miner cron).
2021-08-11 13:30:15 -07:00
ZenGround0
bfda864c1b Fix docsgen 2021-08-11 09:49:23 -04:00
ZenGround0
b914e95f34 revert pricelist by version to pricelist by epoch 2021-08-11 09:49:23 -04:00
Steven Allen
57bf5c2143 feat: add ChainGetTipSetAfterHeight
This is identical to ChainGetTipSetByHeight, but returns the tipset
following any null tipsets. This is what the user usually wants anyways.

(and I need it for another PR)
2021-08-05 12:07:14 -07:00
Jennifer Wang
020cc5e64f docsgen 2021-08-01 03:46:36 -04:00
Jennifer Wang
52b76c9d5c Prepare for v1.11.1-rc2:
- bump the version
- update the changelog
2021-08-01 03:32:03 -04:00
Cory Schwartz
c4ca3660de set buildtype in nerpa and butterfly 2021-07-29 20:41:24 -07:00
Jennifer Wang
786d3e79eb make gen 2021-07-29 04:51:28 -04:00
Raúl Kripalani
07f40b9488 fix docs and nits. 2021-07-28 20:03:25 +01:00
Anton Evangelatov
de4a847078 add RuntimeSubsystems API method; use it in lotus-miner info 2021-07-28 16:02:05 +03:00
Jennifer Wang
f9595b58ee make gen 2021-07-27 23:02:54 -04:00
Jennifer Wang
e49c77e29c bump master version to v1.11.2-dev 2021-07-27 22:54:23 -04:00
Jennifer Wang
2e98f8b5d2 make gen 2021-07-27 22:52:39 -04:00
Jennifer Wang
8a54273f8b add v1.11.1-rc1 changelog and bump the version 2021-07-27 22:42:18 -04:00
Mike Greenberg
76a9f4241b feat: Graceful error when api impl is nil 2021-07-26 13:51:37 +02:00
vyzo
77604db716 make gen 2021-07-26 08:33:25 +03:00
vyzo
21bb2bda09 make gen 2021-07-25 11:25:29 +03:00
Jennifer
19048e6a91
Merge pull request #6837 from Digital-MOB-Filecoin/master
Nerpa v13 upgrade
2021-07-22 23:56:09 -04:00
ZenGround0
c130d2cb87 Rebase fix 2021-07-22 09:50:43 -04:00
ZenGround0
aff7200b3e Add missing upgrade height 2021-07-22 09:49:47 -04:00
ZenGround0
47b5afa84b Add version six and a half 2021-07-22 09:49:47 -04:00
Łukasz Magiera
660829703a Merge remote-tracking branch 'origin/master' into feat/split-net-api 2021-07-22 15:38:06 +02:00
Liviu Damian
e64626cdf3
Nerpa v13 upgrade 2021-07-22 16:31:28 +03:00
Łukasz Magiera
c9bc247732 api gen 2021-07-22 11:23:43 +02:00
Łukasz Magiera
812dc266cf builder: Don't require specific NetAPI impl in StorageMinerAPI 2021-07-15 12:01:13 +02:00
hunjixin
d023026cb0 fix confilct 2021-07-15 14:55:03 +08:00
Anton Evangelatov
d89ddb9315 resolve conflicts 2021-07-12 11:34:37 +02:00
Łukasz Magiera
8f7bf1df86
Merge pull request #6697 from filecoin-project/feat/dealpublish-ctl-config
Config for deal publishing control addresses
2021-07-08 19:00:29 +02:00
Łukasz Magiera
2dc27d6ab4 itests: Fix deal provider collateral flakiness 2021-07-07 19:41:46 +02:00
Travis Person
9977a6d1d7 Add genesis for interop network 2021-07-06 17:06:55 +00:00
Travis Person
9d6d1f5715 Reset interop network 2021-07-06 17:06:55 +00:00
Anton Evangelatov
4f0a96c9c7 resolved conflicts 2021-06-30 13:16:52 +02:00
Łukasz Magiera
df86efbd43 docsgen 2021-06-29 11:27:06 +02:00
Aayush Rajasekaran
07487b6d20
Update version.go 2021-06-28 22:43:14 -04:00
Łukasz Magiera
c1303f1eac gateway: Add support for Version method 2021-06-28 19:05:27 +02:00
Łukasz Magiera
fa2be42eb0 Merge remote-tracking branch 'origin/release/v1.10.0' into chore/merge-1.10 2021-06-23 15:51:00 +02:00
Aayush Rajasekaran
2dd498297f Set HyperDrive upgrade epoch 2021-06-22 19:34:03 -04:00
Anton Evangelatov
e656aad298 regenerate docs 2021-06-22 13:36:24 +02:00
Anton Evangelatov
6720463799 resolve merge conflicts 2021-06-22 11:28:23 +02:00
Raúl Kripalani
c0a8a9f5b5 make gen. 2021-06-21 20:52:59 +01:00
Łukasz Magiera
b37a66c7c9 Merge remote-tracking branch 'origin/release/v1.10.0' into chore/merge-1.10 2021-06-21 17:03:03 +02:00
Jennifer Wang
e1c2567136 docs gen 2021-06-18 22:20:13 -04:00
Jennifer Wang
b01189467a version bump to lotus v1.10.0-rc6 2021-06-18 22:05:19 -04:00
Travis Person
c11a32cf69 Add calibration genesis 2021-06-19 00:53:21 +00:00
Travis Person
65844761b6 Calibration network reset 2021-06-18 23:55:01 +00:00
Aayush Rajasekaran
71785f9099 Lotus version 1.10.0-rc5 2021-06-16 22:15:11 -04:00
Łukasz Magiera
7640ae47de docsgen 2021-06-16 14:51:40 +02:00
Jennifer Wang
c1529714e6 v1.10.0-rc4 have this version base off the right head = v1.9.0 tag 2021-06-15 22:16:41 -04:00
Aayush Rajasekaran
520a0091f5 Merge branch 'releases' into release/v1.10.0 2021-06-15 17:40:36 -04:00
Jennifer Wang
9d7f94bc67 make gen happy 2021-06-14 22:02:00 -04:00
Jennifer Wang
ad6ddcb590 update lotus version to v1.10.0-rc3 2021-06-14 21:44:03 -04:00
Anton Evangelatov
31e6fb154e resolve conflicts 2021-06-14 11:27:54 +02:00
Aayush Rajasekaran
c4c71802f2 Lotus version 1.10.0-rc2 2021-06-09 23:31:52 -04:00
Jennifer Wang
0379adc9f1 Set ntwk v13 HyperDrive Calibration upgrade epoch 2021-06-09 23:27:58 -04:00
Jennifer Wang
55b77a3c99 Set ntwk v13 HyperDrive Calibration upgrade epoch 2021-06-09 23:26:11 -04:00
Cory Schwartz
4bff4f25ad network reset friday 2021-06-08 18:28:01 -04:00
Aayush Rajasekaran
71909c5642 Fix nerpa build 2021-06-08 16:46:53 -04:00
Anton Evangelatov
9ab84bdc0a upgrade docsgen 2021-06-08 15:59:37 +02:00
Anton Evangelatov
9f3ec82cc1 initial resolution of conflicts 2021-06-08 13:01:22 +02:00
aarshkshah1992
21e6b50294 finished rebasing PR 2021-06-07 16:02:15 +05:30
Łukasz Magiera
42ec5928e3
Merge pull request #6337 from filecoin-project/feat/list-retrievals
Add a command to list retrievals
2021-06-04 21:13:25 +02:00
Łukasz Magiera
a7746961fb Merge remote-tracking branch 'origin/master' into feat/list-retrievals 2021-06-04 20:49:01 +02:00
Anton Evangelatov
ed634bc3a4 rebuild docs 2021-06-04 17:06:55 +02:00
Travis Person
e89e0679b5 Interop genesis 2021-06-03 23:27:45 +00:00
Travis Person
96e67b80c3 Add interop network 2021-06-03 22:43:27 +00:00
Aayush Rajasekaran
4a321c6da2 Fix nerpa build 2021-06-02 19:19:32 -04:00
Aayush Rajasekaran
1f10600f13 Lotus version 1.10.0-rc1 2021-06-02 19:04:17 -04:00
Aayush Rajasekaran
55193bf36d Merge branch 'release/v1.9.0' into asr/specs-update 2021-06-02 14:58:14 -04:00
Łukasz Magiera
e1dc7ad6eb build: Use go embed for srs-inner-product.json 2021-06-02 15:12:26 +02:00
Łukasz Magiera
6d9779ecae Merge remote-tracking branch 'origin/master' into feat/nv13-1.11 2021-06-02 15:07:13 +02:00
Cory Schwartz
e13dea7da8 use go:embed 2021-06-02 12:16:09 +02:00
Łukasz Magiera
dc642d0b7b Merge remote-tracking branch 'origin/feat/nv13' into feat/nv13-1.11 2021-06-01 21:06:58 +02:00
Łukasz Magiera
482e1110c2 precommit batcher: Improve error propagation 2021-06-01 14:35:30 +02:00
Łukasz Magiera
084b0e7f60 Handle collateral when submitting aggregated commits 2021-06-01 12:09:15 +02:00
Łukasz Magiera
3671f2a6ff fix 2k build 2021-05-31 21:52:23 +02:00
Łukasz Magiera
ffa47659a1 Merge remote-tracking branch 'origin/feat/nv13' into feat/nv13-1.11 2021-05-31 21:38:34 +02:00
Aayush Rajasekaran
7fca1c1ee7 Implement FIP-0015 2021-05-31 14:40:54 -04:00
hannahhoward
19b6dc8d1e feat(cli): add a list retrievals command
Currently, there is no way to inspect retrievals on a client. This adds said command, allow with
corresponding APIs
2021-05-27 11:48:25 -07:00
Łukasz Magiera
1e4456138e Merge master into feat/nv13 2021-05-27 12:28:20 +02:00
Aayush Rajasekaran
7714537239 Allow starting networks from arbitrary actor versions 2021-05-26 12:48:14 -04:00
Łukasz Magiera
43c62f4406
Revert "Allow starting networks from arbitrary actor versions" 2021-05-26 12:33:08 +02:00
Łukasz Magiera
930f2b4049
Merge pull request #6305 from filecoin-project/asr/genesis-actor
Allow starting networks from arbitrary actor versions
2021-05-26 10:19:23 +02:00
Aayush Rajasekaran
cf574ca9a1 Allow starting networks from arbitrary actor versions 2021-05-25 19:30:20 -04:00
Aayush Rajasekaran
d42eda4336 Use new actor tags 2021-05-25 13:02:49 -04:00
Łukasz Magiera
f5409845b5 Some review addressing 2021-05-25 16:07:45 +02:00
Dirk McCormick
714702f278 feat: allow 8MB sectors in devnet 2021-05-21 10:37:09 -06:00
Łukasz Magiera
1946d2ffd4 Wire up Precommit Batching 2021-05-18 17:37:52 +02:00
Jennifer Wang
ada7f97ba8 docsgen 2021-05-17 16:51:55 -04:00
Jennifer Wang
5af3af5a22 Merge branch 'release/v1.9.0' into releases 2021-05-17 16:16:34 -04:00
Łukasz Magiera
2afe725933 Get PreCommitting to work 2021-05-17 22:02:23 +02:00
Łukasz Magiera
578bef4f83 Update gen 2021-05-17 20:56:28 +02:00
Jennifer Wang
1cade911f6 docsgen 2021-05-17 14:08:36 -04:00
Jennifer Wang
96c3401231 bump the version to v1.9.0 2021-05-17 13:55:05 -04:00
Aayush Rajasekaran
9a6e601754
Merge pull request #5961 from filecoin-project/feat/stateless-offline-dealflow
Introduce stateless offline dealflow, bypassing the FSM/deallists
2021-05-17 12:35:39 -04:00
Jennifer Wang
a4b1dd0f88 docsgen 2021-05-14 22:26:11 -04:00
Jennifer Wang
7b95649cab bump the version to v1.9.0-rc5 2021-05-14 22:22:30 -04:00
Jennifer Wang
3535c2dba8 docsgen 2021-05-13 18:02:54 -04:00
Jennifer Wang
1c4ddcd409 Pull the nerpa upgrade pr and update the version to rc4 2021-05-13 17:48:55 -04:00
Jennifer Wang
efb078947a Upgrade nerpa to actor v4 around May 27th 1600 ET 2021-05-13 17:48:03 -04:00
Jennifer Wang
3910d7cb4a Upgrade nerpa to actor v4 around May 27th 1600 ET 2021-05-13 16:04:38 -04:00
Łukasz Magiera
506f39b294 WIP: Integrate FIP0013 2021-05-11 22:10:29 -04:00
Peter Rabbitson
d54ed1b0c6 Merge remote-tracking branch 'origin/master' into feat/stateless-offline-dealflow 2021-05-11 04:54:22 +02:00
Aayush Rajasekaran
b5da2655dc Introduce v5 actors 2021-05-10 19:44:28 -04:00
Jennifer Wang
0398e556d4 Bump the version 2021-05-07 11:09:06 -04:00
Jakub Sztandera
8d75da1629
Use MessagePrototype for check API
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-05-07 15:30:05 +02:00
vyzo
e2d0047a2a
introduce message prototypes
This introduces message prototypes to applicable API endpoints, which
allows us to invert control of message sending and give the user a
chance to intervene with an interactive ui.

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-05-07 15:30:05 +02:00
vyzo
91e774063e
implement MessagePool.CheckMessages
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-05-07 15:30:04 +02:00
vyzo
ed61642b3a
implement NodeStatus API
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-05-07 15:30:04 +02:00
Peter Rabbitson
e648b72d8d Merge remote-tracking branch 'origin/master' into feat/stateless-offline-dealflow 2021-05-06 15:57:10 +02:00
Aayush Rajasekaran
8227085c37 Lotus version 1.9.0-rc2 2021-04-30 14:06:10 -04:00
Łukasz Magiera
3574ec3d9d cli docsgen: Ignore build type too 2021-04-30 11:18:15 +02:00
Łukasz Magiera
ed08366cac Run cli docsgen in CI 2021-04-29 20:01:23 +02:00
Łukasz Magiera
95e0c3df1d 1.9.0-rc1 2021-04-27 10:30:51 +02:00
Łukasz Magiera
a24a73bb52 Merge tag 'v1.8.0' into release/v1.9.0 2021-04-27 10:30:33 +02:00
Łukasz Magiera
1a980bf971 bump version 2021-04-27 08:39:05 +02:00
Łukasz Magiera
c4137a438d Merge commit 'f1ded63d608e1b191d79c780b8065f8cff367c98' into feat/nv12-1.11 2021-04-27 08:22:55 +02:00
Aayush Rajasekaran
5019fa4cdd Lotus version 1.8.0 2021-04-27 02:02:49 -04:00
Aayush Rajasekaran
f1ded63d60 v4 specs-actors integration, nv12 migration 2021-04-27 02:02:44 -04:00
Cory Schwartz
39e49f1700 implement WalletBalance on gateway 2021-04-20 21:55:47 -07:00
Łukasz Magiera
c7a67cf0e1
Merge pull request #6059 from filecoin-project/frrist/expose-filReserveDisbursed
polish(api): expose filReserveDisbursed via CirculatingSupply API
2021-04-18 16:31:03 +02:00
Łukasz Magiera
03df99f2f5 make gen 2021-04-18 16:27:23 +02:00
Łukasz Magiera
4436c184ed Fix v0/v1 API versions 2021-04-16 00:20:13 +02:00
Łukasz Magiera
cc55aba193 Docsgen 2021-04-13 14:25:03 +02:00
Łukasz Magiera
578505427b Bump version to 1.7.1-dev 2021-04-13 13:32:26 +02:00
Łukasz Magiera
7d8ee0d65a Lotus v1.7.0-rc1 2021-04-13 12:59:11 +02:00
Łukasz Magiera
8c27a6fdea
Merge pull request #6024 from filecoin-project/asr/newest-network
Newest network version is now 11
2021-04-13 11:42:24 +02:00
Łukasz Magiera
8abd09e844 docsgen 2021-04-13 11:14:36 +02:00
Aayush Rajasekaran
732bccae59 Newest newtork version is now 11 2021-04-12 18:13:40 -04:00
Aayush Rajasekaran
c1e4eb3b20 Add a whitelisted block 2021-04-10 02:12:38 -04:00
Aayush Rajasekaran
37ca23d9e2 Merge branch 'releases' into asr/release-master 2021-04-05 17:29:19 -04:00
Peter Rabbitson
b8dff22a40 make gen 2021-04-05 19:15:32 +02:00
Aayush Rajasekaran
a49b21b94a Lotus version 1.6.0 2021-04-04 21:34:20 -04:00
Łukasz Magiera
4538550999 Merge remote-tracking branch 'origin/master' into feat/local-retrieval 2021-04-02 12:36:28 +02:00
Travis Person
37e0526918 Update butterfly network genesis 2021-03-31 21:09:22 +00:00
Anton Evangelatov
03f4334d40 remove commented out code 2021-03-31 23:15:38 +03:00
Anton Evangelatov
967fbf52c6 resolve conflicts 2021-03-31 23:14:29 +03:00
Travis Person
41efbc000d New butterfly network info 2021-03-31 19:45:17 +00:00
Travis Person
a59e36d213 Update butterfly network upgrade 2021-03-31 19:16:32 +00:00
Łukasz Magiera
823c6600e3 docsgen 2021-03-31 19:38:34 +02:00
Łukasz Magiera
ee04f9b71c Merge remote-tracking branch 'origin/master' into nonsense/add-cancel-retrieval-deal-cmd 2021-03-31 19:15:21 +02:00
Aayush Rajasekaran
15e8ea1966 Lotus version 1.6.0-rc2 2021-03-31 00:01:40 -04:00
Aayush Rajasekaran
fd140c3eaf Debug mode: Make upgrade heights controllable by an envvar 2021-03-30 23:57:24 -04:00
Anton Evangelatov
5014b1712e rebuild docs with make docsgen 2021-03-30 16:16:17 +03:00
Anton Evangelatov
139ff4ae64 resolved conflicts 2021-03-30 16:15:42 +03:00
Aayush Rajasekaran
ea2e668b57 Bump master to 1.7.0-dev 2021-03-29 19:45:14 -04:00
Aayush Rajasekaran
99a82d83aa Lotus version 1.6.0-rc1 2021-03-29 19:28:13 -04:00
Aayush Rajasekaran
0b3ca48c05 Introduce UpgradeNorwegianHeight to testground params 2021-03-29 19:20:20 -04:00
Aayush Rajasekaran
cea46e5f53 Upgrade to version 11 at Norwegian height 2021-03-29 18:50:13 -04:00
Łukasz Magiera
7ed390311e
Merge pull request #5884 from hunjixin/feat/remote_calc_winning_proof
remote calc winningpost proof
2021-03-29 22:49:04 +02:00
Łukasz Magiera
bf6ee88539
Merge pull request #5270 from filcloud/deal-duration
use deal duration from actors
2021-03-29 20:17:34 +02:00
Anton Evangelatov
fd6d8b302a commit full.json.gz and miner.json.gz docs 2021-03-29 18:32:09 +03:00
Anton Evangelatov
8ba0bcb375 Merge branch 'master' into nonsense/cli-show-deals-backup 2021-03-29 18:19:28 +03:00
hunjixin
869e6a76c1 update make gen 2021-03-29 10:28:25 +08:00
Dirk McCormick
85eab9e00e fix: make docsgen 2021-03-26 09:53:01 +01:00
hunjixin
449b33abee remote calc winningpost proof 2021-03-26 13:32:03 +08:00
Aayush Rajasekaran
3e6dcb578b Lotus version 1.5.3 2021-03-24 00:07:27 -04: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
Anton Evangelatov
22217b7cae Merge branch 'master' into nonsense/cli-show-deals 2021-03-23 13:58:26 +02:00
Łukasz Magiera
be704cf0f0 docsgen 2021-03-23 10:39:56 +01:00
Łukasz Magiera
43d9cc36a4
OpenRPC Support (#5843)
* main: init implement rpc.Discover RPC method

This implement the basic functionality for the method
over HTTP RPC.

Signed-off-by: meows <b5c6@protonmail.com>

* main,go.mod,go.sum: init example with go-openrpc-reflect lib

Signed-off-by: meows <b5c6@protonmail.com>

 Conflicts:
	go.mod
	go.sum

* main: make variable name human-friendly

Signed-off-by: meows <b5c6@protonmail.com>

* main,go.mod,go.sum: init impl of go-openrp-reflect printing document

Signed-off-by: meows <b5c6@protonmail.com>

 Conflicts:
	go.mod
	go.sum

* go.mod,go.sum: use go-openrpc-reflect and open-rpc/meta-schema hackforks

This is for development only.
Versions need to be bumped when they're ready for use
as canonical remotes.

Signed-off-by: meows <b5c6@protonmail.com>

* main,openrpc,main: refactor openrpc supporting code to own package

This eliminates code duplication.

Signed-off-by: meows <b5c6@protonmail.com>

* main: add rpc.Discover to openrpc document

Signed-off-by: meows <b5c6@protonmail.com>

* openrpc: fix rpc.discover method name casing

Also fixes casing stuff for the rest of Filecoin.
methods.

Signed-off-by: meows <b5c6@protonmail.com>

* Revert "main: add rpc.Discover to openrpc document"

This reverts commit 116898efb10f33e405ac74acb1aa6daefcd46a62.

* main: fix document creation method name

This fixes an issue caused with the latest reverting
commit.

Signed-off-by: meows <b5c6@protonmail.com>

* main,docgen,openrpc: refactor to share api parsing, etc as docgen exported stuff

Signed-off-by: meows <b5c6@protonmail.com>

Makefile: fix docgen refactoring for makefile use of command

Signed-off-by: meows <b5c6@protonmail.com>

* openrpc: add schema.examples to app reflector

There are quite of few of these already registered
for the docgen command, so it makes sense to use
those!

Signed-off-by: meows <b5c6@protonmail.com>

* openrpc: init method pairing examples

Signed-off-by: meows <b5c6@protonmail.com>

* go.mod,go.sum: bump go.mod to use latest meta-schema and openrpc-reflect versions

Signed-off-by: meows <b5c6@protonmail.com>

* openrpc: init SchemaType mapper function

This function will handle the manual configurations
for app-specific data types w/r/t their json schema
representation.

This is useful for cases where the reflect library
is unable to provide a sufficient representation
automatically.

Provided in this commit is an initial implementation
for the integerD type (assuming number are represented
in the API as hexs), and a commonly used cid.Cid type.

Signed-off-by: meows <b5c6@protonmail.com>

* go.mod,go.sum: tame dependencies by bumping etclabscore/go-openrpc-reflect

This removes a problematic dependency
on github.com/ethereum/go-ethereum, which was
imported as a dependency for a couple github.com/etclabscore/go-openrpc-reflect
tests.

etclabscore/go-openrpc-reflect v0.0.36 has removed this
dependency, so this commit is the result of bumping
that version and then running 'go mod tidy'

This is in response to a review at
https://github.com/filecoin-project/lotus/pull/4711#pullrequestreview-535686205

Date: 2020-11-21 06:52:48-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* main: add 'miner' arg to openrpc gen cmd

This allows the command to EITHER
generate the doc for Full or Miner APIs.

See comment for usage.

Date: 2020-11-21 07:48:05-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* docgen: add missing examples for Miner API

Generating the Miner API OpenRPC doc
(via 'go run ./api/openrpc/cmd miner') caused
the example logic to panic because some types
were missing.

This commit adds those missing types, although
I'm not an expert in the API so I can't
suggest that the example values provided are
ideal or well representative.

Date: 2020-11-21 07:50:21-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* build/openrpc/full.json,build/openrpc/miner.json: add build/openrpc/[full/miner].json docs

These will be used as static documents
provided by the rpc.discover method.

Date: 2020-11-21 07:51:39-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* build: init go-rice openrpc static assets

Date: 2020-11-21 08:23:06-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* main: remove rpc.discover implementation from runtime plugin

Instead of generating the doc on the fly,
we're going to serve a static asset.
Rel https://github.com/filecoin-project/lotus/pull/4711#pullrequestreview-535686205
This removes the runtime implementation from the
RPC server construction.

Date: 2020-11-21 08:41:20-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* api,apistruct,common: add Discover(ctx) method to CommonAPI interface and structs

Date: 2020-11-21 08:41:56-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* main: use rpc server method aliasing for rpc.discover

This depends on a currently-forked change at
filecoin-project/go-jsonrpc 8350f9463ee451b187d35c492e32f1b999e80210
which establishes this new method RPCServer.AliasMethod.

This solves the problem that the OpenRPC
spec says that the document should be served
at the system extension-prefixed endpoing
rpc.discover (not Filecoin.Discover).

In fact, the document will be available at BOTH
endpoints, but that duplicity is harmless.

Date: 2020-11-21 09:18:26-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* api,apistruct,build,common: rpc.discover: return json object instead of string

Instead of casting the JSON asset from bytes to string,
unmarshal it to a map[string]interface{} so the
server will provide it as a JSON object.

Date: 2020-11-21 09:27:11-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* Makefile: merge resolve: docsgen command path

Date: 2020-11-22 07:19:36-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* apistruct,main,docgen,openrpc: merge resolve: fix func exporteds, signatures

Date: 2020-11-22 07:31:03-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* go.mod,go.sum: 'get get' auto-bumps version

Date: 2020-11-22 07:31:44-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* Makefile,docgen,main,build/openrpc: refactor openrpc documentation generation

This creates Makefile command docsgen-openrpc-json,
and refactors the docsgen command to generate both
the markdown and openrpc json documents, redirecting
the output of the openrpc json documentation to
the build/openrpc/ directory, where those json
files will be compiled as static assets via go-rice
boxes.

The api/openrpc/cmd now uses usage argumentation
congruent to that of the docgen command (switching
on API context).

Date: 2020-11-22 08:01:18-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* main,docgen_openrpc: rename api/openrpc -> api/docgen-openrpc

Renames the package as well.

This is intended to parallel the
existing docgen package and command
namespacing.

Date: 2020-11-22 10:34:46-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* api,apistruct,docgen,build,build/openrpc: use typed Discover response

Instead of using a map[string]interface{}, use
a typed response for the Discover method implementation.

This avoids having to set a docgen Example for
the generic map[string]interface{} (as an openrpc document)
which both pollutes the generic type and lacks
useful information for the Discover method example.

Date: 2020-11-22 08:31:16-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* apistruct,build,main,impl: implement Discover method for Worker and StorageMiner APIs

Methods return static compiled assets respective
to the APIs.

Date: 2020-11-22 08:57:18-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* docgen_openrpc,build/openrpc: remove timestamping from openrpc doc info

This should allow openrpc docs generated at different
times to be equal. This is important because the CI
(Circle) runs the docgen command and tests that
the output and the source are unchanged (via git diff).

Date: 2020-11-22 10:47:07-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* main,docgen_openrpc,main,build: fix lint issues

Fixes goimports, staticcheck, golint issues.

Date: 2020-11-22 11:06:46-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* docgenopenrpc: fix: don't use an underscore in package name (golint)

Date: 2020-11-22 11:07:53-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* go.sum: fix: mod-tidy-check (run 'go mod tidy')

Date: 2020-11-22 11:09:48-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* go.mod,go.sum: bump filecoin-project/go-jsonrpc dep to latest

This version includes the necessary RPCServer.AliasMethod
method.

Date: 2020-11-23 12:16:15-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* Makefile,main,build,build/openrpc: init gzipped openrpc static docs

Date: 2020-11-24 06:15:06-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* build: refactor gzip reading

Date: 2020-11-24 06:18:34-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* build: add basic test for openrpc doc from static assets

Date: 2020-11-24 06:30:23-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* build: handle reader Close error

This keeps the errcheck linter happy.

Date: 2020-11-24 06:33:14-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* go.sum: run 'go mod tidy'

Date: 2020-11-24 06:36:07-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* go.mod,go.sum: go mod tidy

Tidying up after resolving the merge conflicts
with master at go.mod

Date: 2020-11-24 06:40:45-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* go.mod,go.sum: bump filecoin-project/go-jsonrpc to latest

This is a repeat of 76e6fd2, since the latest merge
to master seems to have reverted this.

Date: 2020-11-24 06:42:30-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* docgenopenrpc,build/openrpc: remove method example pairings, improve schema examples

Removing method example pairings since they were
redundant to schema examples and were not
implemented well.

Improved schema examples by using the ExampleValue
method instead of the map lookup.
Made a note in the comment here that this is
not ideal, since we have to make a shortcut assumption
/workaround by using 'unknown' as the method name
and the typea as its own parent.

Luckily these values aren't heavily used by the
method logic.

Date: 2020-11-27 12:57:36-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* docgenopenrpc: use generic number jsonschema for number types

Previously used an integer schema assuming
hex encoding. It appears, based on review some
of the examples, that this may not be the case.

Obvioussly this schema could be more descriptive,
but just shooting for mostly likely to be
not wrong at this point.

Date: 2020-12-15 14:44:37-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* cmd/lotus,go.mod,go.sum: maybe fix straggling merge resolution conflicts

Date: 2021-01-19 12:30:42-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* build/openrpc/full.json.gz,build/openrpc/miner.json.gz,build/openrpc/worker.json.gz: run 'make docsgen'

Date: 2021-01-19 12:33:55-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* api/apistruct,node/impl: (lint) gofmt

Date: 2021-01-19 12:39:48-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* api/docgen: maybe fix parse error:  open ./api: no such file or directory

Date: 2021-01-19 12:52:04-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* api/docgen,build/openrpc: maybe fix no such file error and run 'make docsgen'

Date: 2021-01-19 12:55:52-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* api/docgen: return if AST comment/groupdoc parsing encounters any error

This will returns empty comments/docs maps.
This should fix issues like:
https://app.circleci.com/pipelines/github/filecoin-project/lotus/12445/workflows/4ebadce9-a298-4ad1-939b-f19ef4c0a5bf/jobs/107218

where the environment makes file lookups hard or
impossible.

Date: 2021-01-19 13:04:58-06:00
Signed-off-by: meows <b5c6@protonmail.com>

* api: Don't depend on build/

* make: support parallel docsgen

* openrpc gen: Use simple build version

* methodgen

* goimports

Co-authored-by: meows <b5c6@protonmail.com>
2021-03-19 19:22:46 +01:00
Łukasz Magiera
d198bf9d6d
Merge pull request #5828 from filecoin-project/asr/version
Bump master to 1.6.0-dev
2021-03-19 11:48:24 +01:00
Peter Rabbitson
c340750672 Nerpa reset backport/cherry-pick from 73eabc310f 2021-03-18 20:55:15 +01:00
Anton Evangelatov
9d6c77d93f remove interactive UX; add inspect-deal cmd 2021-03-18 14:53:03 +02:00
Liviu Damian
ef5b079b8f
Nerpa reset 707219b7a 2021-03-18 12:33:54 +02:00
Peter Rabbitson
8c726cc4f9 Rollback the nerpa proofs upgrade: has to be conditional on upgrades 2021-03-17 12:00:45 +01:00
Aayush Rajasekaran
797d2b1ae8 Bump master to 1.6.0-dev 2021-03-17 02:49:06 -04:00
Aayush Rajasekaran
9afb5ff944 Lotus 1.5.3-rc2 2021-03-17 02:45:23 -04:00
Aayush Rajasekaran
dc94d52084 Tweak upgrade heights 2021-03-17 00:24:17 -04:00
Peter Rabbitson
3c81576bfa Fix nerpa heights for a reset, swapout proof typs 2021-03-17 04:00:29 +01:00
Steven Li
a6e8c03f5c
ipfs-force bootstrapper update 2021-03-12 15:05:00 +08:00
Łukasz Magiera
6d88ea83e7 v1.5.2 changelog, version bump 2021-03-11 10:28:40 +01:00
Aayush Rajasekaran
a977cc2189 Lotus 1.5.1 2021-03-10 18:46:51 -05:00
Łukasz Magiera
1c62d7a40f
Merge pull request #5729 from filecoin-project/feat/api-no-dep-build
Feat/api no dep build
2021-03-09 16:01:53 +01:00
Łukasz Magiera
58d7627168
Merge pull request #5730 from filecoin-project/asr/genesis-rootkey
Customize verifreg root key and remainder account when making genesis
2021-03-08 22:42:09 +01:00
Łukasz Magiera
3ee87a8af8 gofmt 2021-03-08 13:24:24 +01:00
whyrusleeping
e7a1d72ba8 extract build/version to api/version, remove api package dep on build 2021-03-05 14:28:13 -08:00
Aayush Rajasekaran
92c55147c2
Merge pull request #5627 from filecoin-project/feat/update-butterflynet
Update butterfly network
2021-03-04 16:38:36 -05:00
Łukasz Magiera
b48ea9610f Merge remote-tracking branch 'origin/master' into revert-5667-revert-5432-refac/send 2021-02-25 14:54:20 +01:00
Jakub Sztandera
ccebc4f53c
Fix riceing by importing the main package
Go 1.16 elides dependencies from go.sum when you don't use a package
which has these dependencies.

This means dependencies for the `rice` command where not in our
`go.sum`.

Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-02-24 15:58:40 +01:00
Aayush Rajasekaran
d8bb112bcd Lotus version 1.5.0 2021-02-23 16:25:40 -05:00
Jakub Sztandera
303a0fec87
Revert "Revert "Refactor send command for better testability"" 2021-02-23 15:50:47 +01:00
Jakub Sztandera
bebc11522e
Revert "Refactor send command for better testability" 2021-02-23 15:25:19 +01:00
Jakub Sztandera
7721ea20ba
Merge pull request #5432 from filecoin-project/refac/send
Refactor send command for better testability
2021-02-23 13:18:11 +01:00
Aayush Rajasekaran
ac06abb964 Add a LOTUS_DISABLE_V3_ACTOR_MIGRATION envvar 2021-02-23 01:57:42 -05:00
Travis Person
5cf58e291b Add calibration genesis 2021-02-19 23:11:01 +00:00
Travis Person
cf606196e3 Reset calibration network 2021-02-19 23:00:28 +00:00
Aayush Rajasekaran
b60a63ebd9 Set nv10 upgrade epochs 2021-02-19 17:43:01 -05:00
Travis Person
bb4609a764 Add butterfly genesis 2021-02-19 02:16:17 +00:00
Travis Person
aee5edb904 Update butterfly network 2021-02-19 01:58:03 +00:00
Travis Person
b756550ebf Update butterfly network 2021-02-19 00:27:53 +00:00
Jakub Sztandera
bad67acb4b
Generate mocks, integrate send service test
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2021-02-18 15:21:31 +01:00
Travis Person
6559cdfa6a Butterfly genesis 2021-02-17 19:45:27 +00:00
Travis Person
a674062fa8 Update bootstraps 2021-02-17 19:45:27 +00:00
Travis Person
76349510eb Add butterfly network 2021-02-17 19:42:47 +00:00
Aayush Rajasekaran
f76fcef3f8 Lotus version 1.4.2 2021-02-17 13:39:58 -05:00
Aayush Rajasekaran
dd26b68eec Set nerpanet's upgrade epochs up to v3 actors 2021-02-16 01:51:40 -05:00
Łukasz Magiera
8f603717a6 Merge remote-tracking branch 'origin/master' into steb/refactor-consistent-tipset-methods 2021-02-05 13:08:49 +01:00
Łukasz Magiera
52bfed1739 bump api version 2021-02-05 13:08:39 +01:00
Aayush Rajasekaran
6a63e6f448 Create a nerpanet build option 2021-02-02 22:10:22 -05:00
Aayush Rajasekaran
a9ea06dc1e Calibnet V3 epoch 2021-01-28 12:53:53 -05:00
Aayush Rajasekaran
f8ef6a41cb Calibnet V3 epoch 2021-01-27 18:36:44 -05:00
Aayush Rajasekaran
613df60f4a Set calibrationnet's ActorsV3 upgrade epoch 2021-01-25 23:06:20 -05:00
Łukasz Magiera
fabcbb621d Merge remote-tracking branch 'origin/master' into next 2021-01-26 00:47:22 +01:00
Aayush Rajasekaran
a816d22538 Make Calibnet Build Again 2021-01-25 03:43:36 -05:00
Frank
46b92be281 fix debug and 2k mix 2021-01-22 11:27:05 +08:00
Frank
61aae567bb add calibnet and mainnet in version 2021-01-22 11:27:05 +08:00
Aayush Rajasekaran
c8bfbd4f28 Apply actors v3 upgrade in devnets 2021-01-21 15:21:19 -08:00
Steven Allen
99ea5b62ea wire up v3 migration 2021-01-21 15:21:19 -08:00
Aayush Rajasekaran
685a0fdc9c Lotus version 1.4.1 2021-01-20 03:46:05 -05:00
Łukasz Magiera
476df99179
Merge pull request #5341 from filecoin-project/feat/sectors-terminate
Sector termination support
2021-01-14 22:00:18 +01:00
Łukasz Magiera
f01f1d377b Test pending terminations 2021-01-14 12:41:27 +01:00
Aayush Rajasekaran
50d1fae85f Calibnet: Set Orange epoch 2021-01-12 02:58:58 -05:00
Łukasz Magiera
9a0e552131
Merge pull request #5277 from filcloud/update-newest-version
update NewestNetworkVersion
2021-01-11 16:13:23 +01:00
Aayush Rajasekaran
835b84b12a Skip bootstrapping if no peers specified 2021-01-06 16:03:29 -05:00
Łukasz Magiera
ab529f4641
Merge pull request #5288 from filecoin-project/asr/unify-networks
Create a calibnet build option
2021-01-05 20:15:13 +01:00
Aayush Rajasekaran
11d1e3cd5f Remove LOTUS_DISABLE_V2_ACTOR_MIGRATION envvar 2021-01-05 00:46:57 -05:00
Aayush Rajasekaran
1bd2ae034f Create a calibnet build option 2021-01-05 00:32:15 -05:00
Frank
4afef16ee6 update NewestNetworkVersion 2020-12-31 18:43:14 +08:00
Frank
7e0a2ca46e use deal duration from actor 2020-12-30 16:02:53 +08:00
Aayush Rajasekaran
c01d9f05df Lotus version 1.4.0 2020-12-19 16:18:32 -05:00
Jakub Sztandera
e777b879a1
Add the missing file
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-12-19 22:10:45 +01:00
Jakub Sztandera
420888aeae
Add UpgradeOrange to params_2k and params_testground
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
2020-12-19 21:35:14 +01:00
Łukasz Magiera
22884f18f1 define v9 upgrade 2020-12-19 20:44:21 +01:00
Aayush Rajasekaran
d04c01939d Lotus version 1.3.0 2020-12-16 00:34:34 -05:00
Steven Allen
1f754bdb78 disable gas burning for window post messages
While over-estimation fees and miner tips are still paid, gas is no longer burnt
for direct, successful window PoSt messages.

Usually, gas is burnt to prevent an attacker from spamming the network and to
allow clients to "price" messages (using the base fee cap) based on how urgently
they need them to be processed. However:

1. Window PoSt is already a "proof of work".
2. Miners need to submit WindowedPoSts on-time so all window post messages are urgent.
3. Work is already under way to move window post verification off-chain (making
it effectively free). This change simply introduces the "free" part a bit earlier.
2020-12-16 00:10:25 -05:00
Łukasz Magiera
d2b7e7b2ab v1.2.3 changelog, version bump 2020-12-15 18:39:50 +01:00
Łukasz Magiera
ba7854d645
Merge pull request #5105 from filecoin-project/feat/log-insufficent-peers
sync: log a message when there aren't enough peers
2020-12-03 12:53:40 +01:00
Travis Person
a584fcb935 sync: log a message when there aren't enough peers 2020-12-03 01:27:07 +00:00
Aayush Rajasekaran
bf93dfbc3b Lotus version 1.2.2 2020-12-02 20:23:59 -05:00
Aayush Rajasekaran
89ffd368b8 Lotus version 1.2.1 2020-11-19 23:47:46 -05:00
Aayush Rajasekaran
e061a8d163 Lotus version 1.2.0 2020-11-18 15:41:55 -05:00
Aayush Rajasekaran
016f5e44c0 Set Calico epoch 2020-11-17 21:13:43 -05:00
Łukasz Magiera
c597c43724 Bump API versions to 1.0.0 2020-11-17 12:04:06 +01:00
Łukasz Magiera
425ad9c5fa
Merge pull request #4888 from filecoin-project/asr/zero-address
Avoid sending messages to the zero BLS address
2020-11-17 11:57:47 +01:00
Aayush Rajasekaran
7838752352 Avoid sending messages to the zero BLS address 2020-11-17 01:42:11 -05: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
6d0b3978b9 Merge branch 'master' into release/v1.2.0 2020-11-15 19:03:18 -05:00
Aayush Rajasekaran
2971dd4317 Lotus version 1.1.3 2020-11-13 04:09:48 -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
zgfzgf
11ed015dca update BootstrapPeerThreshold = 1 2020-11-11 14:44:35 +08:00