From e216aefd23dd24d13b9d0ae994e85b3ef4d930c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Mon, 10 Jan 2022 18:24:00 +0100 Subject: [PATCH] fix make gen --- api/docgen/docgen.go | 2 + build/openrpc/full.json.gz | Bin 26581 -> 26581 bytes build/openrpc/miner.json.gz | Bin 12555 -> 12620 bytes build/openrpc/worker.json.gz | Bin 3803 -> 4213 bytes documentation/en/api-v0-methods-miner.md | 31 ++++++- documentation/en/api-v0-methods-worker.md | 80 +++++++++++++++++ documentation/en/cli-lotus-worker.md | 2 + extern/sector-storage/stores/mocks/index.go | 30 +++---- extern/sector-storage/stores/mocks/store.go | 95 +++++++------------- 9 files changed, 158 insertions(+), 82 deletions(-) diff --git a/api/docgen/docgen.go b/api/docgen/docgen.go index 571599935..61ced4405 100644 --- a/api/docgen/docgen.go +++ b/api/docgen/docgen.go @@ -300,6 +300,8 @@ func init() { Error: "", }) addExample(storiface.ResourceTable) + + addExample(map[abi.SectorNumber][]uint64{}) } func GetAPIType(name, pkg string) (i interface{}, t reflect.Type, permStruct []reflect.Type) { diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 7ca7301ff72e35e16c485e85f0cd4c306540d3c5..45d4e49648c85cfe32cf37412e186f50471b833d 100644 GIT binary patch delta 22482 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 F1pvvnxby%3 delta 22500 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 diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index e7083de2449cc0fec7b2962d0b1856b7fc1e71b9..f5e65e4605492ad0c0419cb76374492edf77c788 100644 GIT binary patch literal 12620 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 literal 12555 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 diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 717eeaacb2879bc3d4445218e554bffe547f727c..59680d81783715271b51771a359fe0f9b875c9e0 100644 GIT binary patch literal 4213 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 L8^KS+3EKbwLm4uv literal 3803 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 R{|^8F|NkJWl}sqf008mFeN_Me diff --git a/documentation/en/api-v0-methods-miner.md b/documentation/en/api-v0-methods-miner.md index 013aed641..a879b6eed 100644 --- a/documentation/en/api-v0-methods-miner.md +++ b/documentation/en/api-v0-methods-miner.md @@ -144,6 +144,7 @@ * [StorageDropSector](#StorageDropSector) * [StorageFindSector](#StorageFindSector) * [StorageGetLocks](#StorageGetLocks) + * [StorageGetUrl](#StorageGetUrl) * [StorageInfo](#StorageInfo) * [StorageList](#StorageList) * [StorageLocal](#StorageLocal) @@ -2876,7 +2877,8 @@ Inputs: ], "AllowTo": [ "string value" - ] + ], + "Path": "string value" }, { "Capacity": 9, @@ -2922,7 +2924,8 @@ Response: ], "AllowTo": [ "string value" - ] + ], + "Path": "string value" } ] ``` @@ -2995,7 +2998,8 @@ Response: "Weight": 42, "CanSeal": true, "CanStore": true, - "Primary": true + "Primary": true, + "Path": "string value" } ] ``` @@ -3035,6 +3039,24 @@ Response: } ``` +### StorageGetUrl + + +Perms: admin + +Inputs: +```json +[ + { + "Miner": 1000, + "Number": 9 + }, + 1 +] +``` + +Response: `"string value"` + ### StorageInfo @@ -3063,7 +3085,8 @@ Response: ], "AllowTo": [ "string value" - ] + ], + "Path": "string value" } ``` diff --git a/documentation/en/api-v0-methods-worker.md b/documentation/en/api-v0-methods-worker.md index 566a650fa..9a6b4e6c2 100644 --- a/documentation/en/api-v0-methods-worker.md +++ b/documentation/en/api-v0-methods-worker.md @@ -13,6 +13,8 @@ * [FinalizeSector](#FinalizeSector) * [Generate](#Generate) * [GenerateSectorKeyFromData](#GenerateSectorKeyFromData) + * [GenerateWindowPoSt](#GenerateWindowPoSt) + * [GenerateWinningPoSt](#GenerateWinningPoSt) * [Move](#Move) * [MoveStorage](#MoveStorage) * [Process](#Process) @@ -854,6 +856,84 @@ Response: } ``` +### GenerateWindowPoSt + + +Perms: admin + +Inputs: +```json +[ + 1000, + { + "Spsi": null + }, + 123, + 123, + "Bw==", + { + "Fc": { + "Sectors": [ + 123, + 124 + ], + "Challenges": {} + } + } +] +``` + +Response: +```json +{ + "PoStProofs": { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + }, + "Skipped": [ + { + "Miner": 1000, + "Number": 9 + } + ] +} +``` + +### GenerateWinningPoSt + + +Perms: admin + +Inputs: +```json +[ + 1000, + { + "Spsi": null + }, + "Bw==", + { + "Fc": { + "Sectors": [ + 123, + 124 + ], + "Challenges": {} + } + } +] +``` + +Response: +```json +[ + { + "PoStProof": 8, + "ProofBytes": "Ynl0ZSBhcnJheQ==" + } +] +``` + ## Move diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index ac133f908..c295a6290 100644 --- a/documentation/en/cli-lotus-worker.md +++ b/documentation/en/cli-lotus-worker.md @@ -46,6 +46,8 @@ OPTIONS: --commit enable commit (32G sectors: all cores or GPUs, 128GiB Memory + 64GiB swap) (default: true) --parallel-fetch-limit value maximum fetch operations to run in parallel (default: 5) --timeout value used when 'listen' is unspecified. must be a valid duration recognized by golang's time.ParseDuration function (default: "30m") + --windowpost enable window post (default: false) + --winningpost enable winning post (default: false) --help, -h show help (default: false) ``` diff --git a/extern/sector-storage/stores/mocks/index.go b/extern/sector-storage/stores/mocks/index.go index 1eb29db5b..274052393 100644 --- a/extern/sector-storage/stores/mocks/index.go +++ b/extern/sector-storage/stores/mocks/index.go @@ -125,6 +125,21 @@ func (mr *MockSectorIndexMockRecorder) StorageGetLocks(arg0 interface{}) *gomock return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StorageGetLocks", reflect.TypeOf((*MockSectorIndex)(nil).StorageGetLocks), arg0) } +// StorageGetUrl mocks base method. +func (m *MockSectorIndex) StorageGetUrl(arg0 context.Context, arg1 abi.SectorID, arg2 storiface.SectorFileType) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StorageGetUrl", arg0, arg1, arg2) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StorageGetUrl indicates an expected call of StorageGetUrl. +func (mr *MockSectorIndexMockRecorder) StorageGetUrl(arg0, arg1, arg2 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StorageGetUrl", reflect.TypeOf((*MockSectorIndex)(nil).StorageGetUrl), arg0, arg1, arg2) +} + // StorageInfo mocks base method. func (m *MockSectorIndex) StorageInfo(arg0 context.Context, arg1 stores.ID) (stores.StorageInfo, error) { m.ctrl.T.Helper() @@ -197,18 +212,3 @@ func (mr *MockSectorIndexMockRecorder) StorageTryLock(arg0, arg1, arg2, arg3 int mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StorageTryLock", reflect.TypeOf((*MockSectorIndex)(nil).StorageTryLock), arg0, arg1, arg2, arg3) } - -// StorageGetUrl mocks base method. -func (m *MockSectorIndex) StorageGetUrl(ctx context.Context, s abi.SectorID, ft storiface.SectorFileType) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "StorageGetUrl", ctx, s, ft) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// StorageGetUrl indicates an expected call of StorageGetUrl. -func (mr *MockSectorIndexMockRecorder) StorageGetUrl(ctx, s, ft interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StorageGetUrl", reflect.TypeOf((*MockSectorIndex)(nil).StorageGetUrl), ctx, s, ft) -} diff --git a/extern/sector-storage/stores/mocks/store.go b/extern/sector-storage/stores/mocks/store.go index 3786e2a2e..4f0aa6827 100644 --- a/extern/sector-storage/stores/mocks/store.go +++ b/extern/sector-storage/stores/mocks/store.go @@ -8,9 +8,8 @@ import ( context "context" reflect "reflect" - ffi "github.com/filecoin-project/filecoin-ffi" abi "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/lotus/extern/sector-storage/ffiwrapper" + ffiwrapper "github.com/filecoin-project/lotus/extern/sector-storage/ffiwrapper" fsutil "github.com/filecoin-project/lotus/extern/sector-storage/fsutil" stores "github.com/filecoin-project/lotus/extern/sector-storage/stores" storiface "github.com/filecoin-project/lotus/extern/sector-storage/storiface" @@ -57,6 +56,22 @@ func (mr *MockStoreMockRecorder) AcquireSector(arg0, arg1, arg2, arg3, arg4, arg return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquireSector", reflect.TypeOf((*MockStore)(nil).AcquireSector), arg0, arg1, arg2, arg3, arg4, arg5) } +// AcquireSectorPaths mocks base method. +func (m *MockStore) AcquireSectorPaths(arg0 context.Context, arg1 storage.SectorRef, arg2, arg3 storiface.SectorFileType, arg4 storiface.PathType) (storiface.SectorPaths, storiface.SectorPaths, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AcquireSectorPaths", arg0, arg1, arg2, arg3, arg4) + ret0, _ := ret[0].(storiface.SectorPaths) + ret1, _ := ret[1].(storiface.SectorPaths) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// AcquireSectorPaths indicates an expected call of AcquireSectorPaths. +func (mr *MockStoreMockRecorder) AcquireSectorPaths(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquireSectorPaths", reflect.TypeOf((*MockStore)(nil).AcquireSectorPaths), arg0, arg1, arg2, arg3, arg4) +} + // FsStat mocks base method. func (m *MockStore) FsStat(arg0 context.Context, arg1 stores.ID) (fsutil.FsStat, error) { m.ctrl.T.Helper() @@ -72,6 +87,21 @@ func (mr *MockStoreMockRecorder) FsStat(arg0, arg1 interface{}) *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FsStat", reflect.TypeOf((*MockStore)(nil).FsStat), arg0, arg1) } +// GenerateSingleVanillaProof mocks base method. +func (m *MockStore) GenerateSingleVanillaProof(arg0 context.Context, arg1 abi.ActorID, arg2 *ffiwrapper.PrivateSectorInfo, arg3 []uint64) ([]byte, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GenerateSingleVanillaProof", arg0, arg1, arg2, arg3) + ret0, _ := ret[0].([]byte) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GenerateSingleVanillaProof indicates an expected call of GenerateSingleVanillaProof. +func (mr *MockStoreMockRecorder) GenerateSingleVanillaProof(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GenerateSingleVanillaProof", reflect.TypeOf((*MockStore)(nil).GenerateSingleVanillaProof), arg0, arg1, arg2, arg3) +} + // MoveStorage mocks base method. func (m *MockStore) MoveStorage(arg0 context.Context, arg1 storage.SectorRef, arg2 storiface.SectorFileType) error { m.ctrl.T.Helper() @@ -128,64 +158,3 @@ func (mr *MockStoreMockRecorder) Reserve(arg0, arg1, arg2, arg3, arg4 interface{ mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Reserve", reflect.TypeOf((*MockStore)(nil).Reserve), arg0, arg1, arg2, arg3, arg4) } - -// GenerateWindowPoStVanilla mocks base method. -func (m *MockStore) GenerateWindowPoStVanilla(ctx context.Context, minerID abi.ActorID, privsector *ffi.PrivateSectorInfo, vanillaParams string, randomness abi.PoStRandomness) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GenerateWindowPoStVanilla", ctx, minerID, privsector, vanillaParams, randomness) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GenerateWindowPoStVanilla indicates an expected call of GenerateWindowPoStVanilla. -func (mr *MockStoreMockRecorder) GenerateWindowPoStVanilla(ctx, minerID, privsector, vanillaParams, randomness interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GenerateWindowPoStVanilla", reflect.TypeOf((*MockStore)(nil).GenerateWindowPoStVanilla), ctx, minerID, privsector, vanillaParams, randomness) -} - -// GenerateWinningPoStVanilla mocks base method. -func (m *MockStore) GenerateWinningPoStVanilla(ctx context.Context, minerID abi.ActorID, privsector *ffi.PrivateSectorInfo, randomness abi.PoStRandomness) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GenerateWinningPoStVanilla", ctx, minerID, privsector, randomness) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GenerateWinningPoStVanilla indicates an expected call of GenerateWinningPoStVanilla. -func (mr *MockStoreMockRecorder) GenerateWinningPoStVanilla(ctx, minerID, privsector, randomness interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GenerateWinningPoStVanilla", reflect.TypeOf((*MockStore)(nil).GenerateWinningPoStVanilla), ctx, minerID, privsector, randomness) -} - -// AcquireSectorPaths mocks base method. -func (m *MockStore) AcquireSectorPaths(ctx context.Context, s storage.SectorRef, existing storiface.SectorFileType, allocate storiface.SectorFileType, sealing storiface.PathType) (storiface.SectorPaths, storiface.SectorPaths, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AcquireSectorPaths", ctx, s, existing, allocate, sealing) - ret0, _ := ret[0].(storiface.SectorPaths) - ret1, _ := ret[1].(storiface.SectorPaths) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// AcquireSectorPaths indicates an expected call of AcquireSectorPaths. -func (mr *MockStoreMockRecorder) AcquireSectorPaths(ctx, s, existing, allocate, sealing interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AcquireSectorPaths", reflect.TypeOf((*MockStore)(nil).AcquireSectorPaths), ctx, s, existing, allocate, sealing) -} - -// GenerateSingleVanillaProof mocks base method. -func (m *MockStore) GenerateSingleVanillaProof(ctx context.Context, minerID abi.ActorID, privsector *ffiwrapper.PrivateSectorInfo, challange []uint64) ([]byte, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GenerateSingleVanillaProof", ctx, minerID, privsector, challange) - ret0, _ := ret[0].([]byte) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GenerateSingleVanillaProof indicates an expected call of GenerateSingleVanillaProof. -func (mr *MockStoreMockRecorder) GenerateSingleVanillaProof(ctx, minerID, privsector, challange interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GenerateSingleVanillaProof", reflect.TypeOf((*MockStore)(nil).GenerateSingleVanillaProof), ctx, minerID, privsector, challange) -}