mirror of
https://github.com/filecoin-project/lotus.git
synced 2025-05-20 08:38:15 +08:00
chore: upgrade to go-f3 v0.8.3
(#12941)
Upgrade to go-f3 `v0.8.3` Upgrade to the latest go-f3, to bubble up: * various bug fixes * extended manifest parameters for better control in passive testing Note that the return type from F3GetProgress API has changed to now include the input chain to an instance. Update CLI templates to print the additional fields.
This commit is contained in:
@ -16,7 +16,7 @@
|
|||||||
- chore: switch to pure-go zstd decoder for snapshot imports. ([filecoin-project/lotus#12857](https://github.com/filecoin-project/lotus/pull/12857))
|
- chore: switch to pure-go zstd decoder for snapshot imports. ([filecoin-project/lotus#12857](https://github.com/filecoin-project/lotus/pull/12857))
|
||||||
- feat: automatically detect if the genesis is zstd compressed. ([filecoin-project/lotus#12885](https://github.com/filecoin-project/lotus/pull/12885)
|
- feat: automatically detect if the genesis is zstd compressed. ([filecoin-project/lotus#12885](https://github.com/filecoin-project/lotus/pull/12885)
|
||||||
- `lotus send` now supports `--csv` option for sending multiple transactions. ([filecoin-project/lotus#12892](https://github.com/filecoin-project/lotus/pull/12892))
|
- `lotus send` now supports `--csv` option for sending multiple transactions. ([filecoin-project/lotus#12892](https://github.com/filecoin-project/lotus/pull/12892))
|
||||||
- chore: upgrade to the latest go-f3 and allow F3 chain exchange topics ([filecoin-project/lotus#12893](https://github.com/filecoin-project/lotus/pull/12893)
|
- chore: upgrade to go-f3 `v.0.8.3`
|
||||||
- chore: upgrade to a minimum Golang version of `1.23.6` ([filecoin-project/lotus#12910](https://github.com/filecoin-project/lotus/pull/12910)
|
- chore: upgrade to a minimum Golang version of `1.23.6` ([filecoin-project/lotus#12910](https://github.com/filecoin-project/lotus/pull/12910)
|
||||||
- feat: add a `LOTUS_DISABLE_F3_ACTIVATION` enviroment variable allowing disabling F3 activation for a specific contract address or epoch ([filecoin-project/lotus#12920](https://github.com/filecoin-project/lotus/pull/12920)). The `LOTUS_DISABLE_F3` env-var has been renamed to `LOTUS_DISABLE_F3_SUBSYSTEM` to distinguish it from the other F3-related environment variables: `LOTUS_DISABLE_F3_PASSIVE_TESTING` and `LOTUS_DISABLE_F3_ACTIVATION`.
|
- feat: add a `LOTUS_DISABLE_F3_ACTIVATION` enviroment variable allowing disabling F3 activation for a specific contract address or epoch ([filecoin-project/lotus#12920](https://github.com/filecoin-project/lotus/pull/12920)). The `LOTUS_DISABLE_F3` env-var has been renamed to `LOTUS_DISABLE_F3_SUBSYSTEM` to distinguish it from the other F3-related environment variables: `LOTUS_DISABLE_F3_PASSIVE_TESTING` and `LOTUS_DISABLE_F3_ACTIVATION`.
|
||||||
- feat: add `GenesisTimestamp` field to `StateGetNetworkParams` response ([filecoin-project/lotus#12925](https://github.com/filecoin-project/lotus/pull/12925))
|
- feat: add `GenesisTimestamp` field to `StateGetNetworkParams` response ([filecoin-project/lotus#12925](https://github.com/filecoin-project/lotus/pull/12925))
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#####################################
|
#####################################
|
||||||
FROM golang:1.23.6-bullseye AS lotus-builder
|
FROM golang:1.23.7-bullseye AS lotus-builder
|
||||||
MAINTAINER Lotus Development Team
|
MAINTAINER Lotus Development Team
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y ca-certificates build-essential clang ocl-icd-opencl-dev ocl-icd-libopencl1 jq libhwloc-dev
|
RUN apt-get update && apt-get install -y ca-certificates build-essential clang ocl-icd-opencl-dev ocl-icd-libopencl1 jq libhwloc-dev
|
||||||
|
@ -1 +1 @@
|
|||||||
1.23.6
|
1.23.7
|
||||||
|
@ -58,10 +58,10 @@ For other distributions you can find the required dependencies [here.](https://l
|
|||||||
|
|
||||||
#### Go
|
#### Go
|
||||||
|
|
||||||
To build Lotus, you need a working installation of [Go 1.23.6 or higher](https://golang.org/dl/):
|
To build Lotus, you need a working installation of [Go 1.23.7 or higher](https://golang.org/dl/):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
wget -c https://golang.org/dl/go1.23.6.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local
|
wget -c https://golang.org/dl/go1.23.7.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local
|
||||||
```
|
```
|
||||||
|
|
||||||
**TIP:**
|
**TIP:**
|
||||||
|
@ -1031,7 +1031,7 @@ type FullNode interface {
|
|||||||
// it's enabled, and an error when disabled entirely.
|
// it's enabled, and an error when disabled entirely.
|
||||||
F3IsRunning(ctx context.Context) (bool, error) //perm:read
|
F3IsRunning(ctx context.Context) (bool, error) //perm:read
|
||||||
// F3GetProgress returns the progress of the current F3 instance in terms of instance ID, round and phase.
|
// F3GetProgress returns the progress of the current F3 instance in terms of instance ID, round and phase.
|
||||||
F3GetProgress(ctx context.Context) (gpbft.Instant, error) //perm:read
|
F3GetProgress(ctx context.Context) (gpbft.InstanceProgress, error) //perm:read
|
||||||
// F3ListParticipants returns the list of miners that are currently participating in F3 via this node.
|
// F3ListParticipants returns the list of miners that are currently participating in F3 via this node.
|
||||||
F3ListParticipants(ctx context.Context) ([]F3Participant, error) //perm:read
|
F3ListParticipants(ctx context.Context) ([]F3Participant, error) //perm:read
|
||||||
}
|
}
|
||||||
|
@ -105,17 +105,18 @@ func init() {
|
|||||||
addExample(f3Lease)
|
addExample(f3Lease)
|
||||||
addExample(&f3Lease)
|
addExample(&f3Lease)
|
||||||
|
|
||||||
f3Cert := certs.FinalityCertificate{
|
ecchain := &gpbft.ECChain{
|
||||||
GPBFTInstance: 0,
|
TipSets: []*gpbft.TipSet{
|
||||||
ECChain: &gpbft.ECChain{
|
{
|
||||||
TipSets: []*gpbft.TipSet{
|
Epoch: 0,
|
||||||
{
|
Key: tsk.Bytes(),
|
||||||
Epoch: 0,
|
PowerTable: c,
|
||||||
Key: tsk.Bytes(),
|
|
||||||
PowerTable: c,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
}
|
||||||
|
f3Cert := certs.FinalityCertificate{
|
||||||
|
GPBFTInstance: 0,
|
||||||
|
ECChain: ecchain,
|
||||||
SupplementalData: gpbft.SupplementalData{
|
SupplementalData: gpbft.SupplementalData{
|
||||||
PowerTable: c,
|
PowerTable: c,
|
||||||
},
|
},
|
||||||
@ -459,6 +460,14 @@ func init() {
|
|||||||
addExample(&manifest.Manifest{})
|
addExample(&manifest.Manifest{})
|
||||||
addExample(gpbft.NetworkName("filecoin"))
|
addExample(gpbft.NetworkName("filecoin"))
|
||||||
addExample(gpbft.ActorID(1000))
|
addExample(gpbft.ActorID(1000))
|
||||||
|
addExample(gpbft.InstanceProgress{
|
||||||
|
Instant: gpbft.Instant{
|
||||||
|
ID: 1413,
|
||||||
|
Round: 1,
|
||||||
|
Phase: gpbft.COMMIT_PHASE,
|
||||||
|
},
|
||||||
|
Input: ecchain,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetAPIType(name, pkg string) (i interface{}, t reflect.Type, permStruct []reflect.Type) {
|
func GetAPIType(name, pkg string) (i interface{}, t reflect.Type, permStruct []reflect.Type) {
|
||||||
|
@ -1321,10 +1321,10 @@ func (mr *MockFullNodeMockRecorder) F3GetOrRenewParticipationTicket(arg0, arg1,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// F3GetProgress mocks base method.
|
// F3GetProgress mocks base method.
|
||||||
func (m *MockFullNode) F3GetProgress(arg0 context.Context) (gpbft.Instant, error) {
|
func (m *MockFullNode) F3GetProgress(arg0 context.Context) (gpbft.InstanceProgress, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "F3GetProgress", arg0)
|
ret := m.ctrl.Call(m, "F3GetProgress", arg0)
|
||||||
ret0, _ := ret[0].(gpbft.Instant)
|
ret0, _ := ret[0].(gpbft.InstanceProgress)
|
||||||
ret1, _ := ret[1].(error)
|
ret1, _ := ret[1].(error)
|
||||||
return ret0, ret1
|
return ret0, ret1
|
||||||
}
|
}
|
||||||
|
@ -274,7 +274,7 @@ type FullNodeMethods struct {
|
|||||||
|
|
||||||
F3GetOrRenewParticipationTicket func(p0 context.Context, p1 address.Address, p2 F3ParticipationTicket, p3 uint64) (F3ParticipationTicket, error) `perm:"sign"`
|
F3GetOrRenewParticipationTicket func(p0 context.Context, p1 address.Address, p2 F3ParticipationTicket, p3 uint64) (F3ParticipationTicket, error) `perm:"sign"`
|
||||||
|
|
||||||
F3GetProgress func(p0 context.Context) (gpbft.Instant, error) `perm:"read"`
|
F3GetProgress func(p0 context.Context) (gpbft.InstanceProgress, error) `perm:"read"`
|
||||||
|
|
||||||
F3IsRunning func(p0 context.Context) (bool, error) `perm:"read"`
|
F3IsRunning func(p0 context.Context) (bool, error) `perm:"read"`
|
||||||
|
|
||||||
@ -2239,15 +2239,15 @@ func (s *FullNodeStub) F3GetOrRenewParticipationTicket(p0 context.Context, p1 ad
|
|||||||
return *new(F3ParticipationTicket), ErrNotSupported
|
return *new(F3ParticipationTicket), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) F3GetProgress(p0 context.Context) (gpbft.Instant, error) {
|
func (s *FullNodeStruct) F3GetProgress(p0 context.Context) (gpbft.InstanceProgress, error) {
|
||||||
if s.Internal.F3GetProgress == nil {
|
if s.Internal.F3GetProgress == nil {
|
||||||
return *new(gpbft.Instant), ErrNotSupported
|
return *new(gpbft.InstanceProgress), ErrNotSupported
|
||||||
}
|
}
|
||||||
return s.Internal.F3GetProgress(p0)
|
return s.Internal.F3GetProgress(p0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStub) F3GetProgress(p0 context.Context) (gpbft.Instant, error) {
|
func (s *FullNodeStub) F3GetProgress(p0 context.Context) (gpbft.InstanceProgress, error) {
|
||||||
return *new(gpbft.Instant), ErrNotSupported
|
return *new(gpbft.InstanceProgress), ErrNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *FullNodeStruct) F3IsRunning(p0 context.Context) (bool, error) {
|
func (s *FullNodeStruct) F3IsRunning(p0 context.Context) (bool, error) {
|
||||||
|
@ -7611,7 +7611,10 @@
|
|||||||
"MaximumPollInterval": 0
|
"MaximumPollInterval": 0
|
||||||
},
|
},
|
||||||
"PubSub": {
|
"PubSub": {
|
||||||
"CompressionEnabled": false
|
"CompressionEnabled": false,
|
||||||
|
"ChainCompressionEnabled": false,
|
||||||
|
"GMessageSubscriptionBufferSize": 0,
|
||||||
|
"ValidatedMessageBufferSize": 0
|
||||||
},
|
},
|
||||||
"ChainExchange": {
|
"ChainExchange": {
|
||||||
"SubscriptionBufferSize": 0,
|
"SubscriptionBufferSize": 0,
|
||||||
@ -7621,6 +7624,15 @@
|
|||||||
"MaxWantedChainsPerInstance": 0,
|
"MaxWantedChainsPerInstance": 0,
|
||||||
"RebroadcastInterval": 0,
|
"RebroadcastInterval": 0,
|
||||||
"MaxTimestampAge": 0
|
"MaxTimestampAge": 0
|
||||||
|
},
|
||||||
|
"PartialMessageManager": {
|
||||||
|
"PendingDiscoveredChainsBufferSize": 0,
|
||||||
|
"PendingPartialMessagesBufferSize": 0,
|
||||||
|
"PendingChainBroadcastsBufferSize": 0,
|
||||||
|
"PendingInstanceRemovalBufferSize": 0,
|
||||||
|
"CompletedMessagesBufferSize": 0,
|
||||||
|
"MaxBufferedMessagesPerInstance": 0,
|
||||||
|
"MaxCachedValidatedMessagesPerInstance": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -7801,6 +7813,40 @@
|
|||||||
"NetworkName": {
|
"NetworkName": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"PartialMessageManager": {
|
||||||
|
"additionalProperties": false,
|
||||||
|
"properties": {
|
||||||
|
"CompletedMessagesBufferSize": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"MaxBufferedMessagesPerInstance": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"MaxCachedValidatedMessagesPerInstance": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"PendingChainBroadcastsBufferSize": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"PendingDiscoveredChainsBufferSize": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"PendingInstanceRemovalBufferSize": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"PendingPartialMessagesBufferSize": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"Pause": {
|
"Pause": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
@ -7811,8 +7857,19 @@
|
|||||||
"PubSub": {
|
"PubSub": {
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"ChainCompressionEnabled": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
"CompressionEnabled": {
|
"CompressionEnabled": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"GMessageSubscriptionBufferSize": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"ValidatedMessageBufferSize": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type": "object"
|
"type": "object"
|
||||||
@ -7927,20 +7984,37 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Filecoin.F3GetProgress",
|
"name": "Filecoin.F3GetProgress",
|
||||||
"description": "```go\nfunc (s *FullNodeStruct) F3GetProgress(p0 context.Context) (gpbft.Instant, error) {\n\tif s.Internal.F3GetProgress == nil {\n\t\treturn *new(gpbft.Instant), ErrNotSupported\n\t}\n\treturn s.Internal.F3GetProgress(p0)\n}\n```",
|
"description": "```go\nfunc (s *FullNodeStruct) F3GetProgress(p0 context.Context) (gpbft.InstanceProgress, error) {\n\tif s.Internal.F3GetProgress == nil {\n\t\treturn *new(gpbft.InstanceProgress), ErrNotSupported\n\t}\n\treturn s.Internal.F3GetProgress(p0)\n}\n```",
|
||||||
"summary": "F3GetProgress returns the progress of the current F3 instance in terms of instance ID, round and phase.\n",
|
"summary": "F3GetProgress returns the progress of the current F3 instance in terms of instance ID, round and phase.\n",
|
||||||
"paramStructure": "by-position",
|
"paramStructure": "by-position",
|
||||||
"params": [],
|
"params": [],
|
||||||
"result": {
|
"result": {
|
||||||
"name": "gpbft.Instant",
|
"name": "gpbft.InstanceProgress",
|
||||||
"description": "gpbft.Instant",
|
"description": "gpbft.InstanceProgress",
|
||||||
"summary": "",
|
"summary": "",
|
||||||
"schema": {
|
"schema": {
|
||||||
"examples": [
|
"examples": [
|
||||||
{
|
{
|
||||||
"ID": 42,
|
"ID": 1413,
|
||||||
"Round": 42,
|
"Round": 1,
|
||||||
"Phase": 0
|
"Phase": 4,
|
||||||
|
"Input": [
|
||||||
|
{
|
||||||
|
"Key": [
|
||||||
|
{
|
||||||
|
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"/": "bafy2bzacebp3shtrn43k7g3unredz7fxn4gj533d3o43tqn2p2ipxxhrvchve"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Commitments": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"Epoch": 0,
|
||||||
|
"PowerTable": {
|
||||||
|
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
@ -7949,6 +8023,39 @@
|
|||||||
"title": "number",
|
"title": "number",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
},
|
},
|
||||||
|
"Input": {
|
||||||
|
"items": {
|
||||||
|
"additionalProperties": false,
|
||||||
|
"properties": {
|
||||||
|
"Commitments": {
|
||||||
|
"items": {
|
||||||
|
"description": "Number is a number",
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"maxItems": 32,
|
||||||
|
"minItems": 32,
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"Epoch": {
|
||||||
|
"title": "number",
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"Key": {
|
||||||
|
"media": {
|
||||||
|
"binaryEncoding": "base64"
|
||||||
|
},
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"PowerTable": {
|
||||||
|
"title": "Content Identifier",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
"Phase": {
|
"Phase": {
|
||||||
"title": "number",
|
"title": "number",
|
||||||
"type": "number"
|
"type": "number"
|
||||||
|
@ -71,8 +71,9 @@ func NewManifest(
|
|||||||
MinimumPollInterval: ecPeriod,
|
MinimumPollInterval: ecPeriod,
|
||||||
MaximumPollInterval: 4 * ecPeriod,
|
MaximumPollInterval: 4 * ecPeriod,
|
||||||
},
|
},
|
||||||
PubSub: manifest.DefaultPubSubConfig,
|
PubSub: manifest.DefaultPubSubConfig,
|
||||||
ChainExchange: manifest.DefaultChainExchangeConfig,
|
ChainExchange: manifest.DefaultChainExchangeConfig,
|
||||||
|
PartialMessageManager: manifest.DefaultPartialMessageManagerConfig,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ func New(mctx helpers.MetricsCtx, lc fx.Lifecycle, params F3Params) (*F3, error)
|
|||||||
// maxLeasableInstances is the maximum number of leased F3 instances this node
|
// maxLeasableInstances is the maximum number of leased F3 instances this node
|
||||||
// would give out.
|
// would give out.
|
||||||
const maxLeasableInstances = 5
|
const maxLeasableInstances = 5
|
||||||
status := func() (*manifest.Manifest, gpbft.Instant) {
|
status := func() (*manifest.Manifest, gpbft.InstanceProgress) {
|
||||||
return module.Manifest(), module.Progress()
|
return module.Manifest(), module.Progress()
|
||||||
}
|
}
|
||||||
fff := &F3{
|
fff := &F3{
|
||||||
@ -215,7 +215,7 @@ func (fff *F3) IsRunning() bool {
|
|||||||
return fff.inner.IsRunning()
|
return fff.inner.IsRunning()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fff *F3) Progress() gpbft.Instant {
|
func (fff *F3) Progress() gpbft.InstanceProgress {
|
||||||
return fff.inner.Progress()
|
return fff.inner.Progress()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/api"
|
"github.com/filecoin-project/lotus/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
type f3Status = func() (*manifest.Manifest, gpbft.Instant)
|
type f3Status = func() (*manifest.Manifest, gpbft.InstanceProgress)
|
||||||
|
|
||||||
type leaser struct {
|
type leaser struct {
|
||||||
mutex sync.Mutex
|
mutex sync.Mutex
|
||||||
|
@ -198,10 +198,12 @@ var testManifest = NewManifest("fakenet", 30, 30, 30*time.Second, cid.Undef)
|
|||||||
|
|
||||||
type mockProgress struct{ currentInstance uint64 }
|
type mockProgress struct{ currentInstance uint64 }
|
||||||
|
|
||||||
func (m *mockProgress) Progress() (*manifest.Manifest, gpbft.Instant) {
|
func (m *mockProgress) Progress() (*manifest.Manifest, gpbft.InstanceProgress) {
|
||||||
return testManifest, gpbft.Instant{
|
return testManifest, gpbft.InstanceProgress{
|
||||||
ID: m.currentInstance,
|
Instant: gpbft.Instant{
|
||||||
Round: 0,
|
ID: m.currentInstance,
|
||||||
Phase: gpbft.INITIAL_PHASE,
|
Round: 0,
|
||||||
|
Phase: gpbft.INITIAL_PHASE,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
16
chain/lf3/testdata/contract_manifest_golden.json
vendored
16
chain/lf3/testdata/contract_manifest_golden.json
vendored
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"Pause": false,
|
"Pause": false,
|
||||||
"ProtocolVersion": 5,
|
"ProtocolVersion": 7,
|
||||||
"InitialInstance": 0,
|
"InitialInstance": 0,
|
||||||
"BootstrapEpoch": 5000000,
|
"BootstrapEpoch": 5000000,
|
||||||
"NetworkName": "filecoin",
|
"NetworkName": "filecoin",
|
||||||
@ -44,7 +44,10 @@
|
|||||||
"MaximumPollInterval": 120000000000
|
"MaximumPollInterval": 120000000000
|
||||||
},
|
},
|
||||||
"PubSub": {
|
"PubSub": {
|
||||||
"CompressionEnabled": false
|
"CompressionEnabled": true,
|
||||||
|
"ChainCompressionEnabled": true,
|
||||||
|
"GMessageSubscriptionBufferSize": 128,
|
||||||
|
"ValidatedMessageBufferSize": 128
|
||||||
},
|
},
|
||||||
"ChainExchange": {
|
"ChainExchange": {
|
||||||
"SubscriptionBufferSize": 32,
|
"SubscriptionBufferSize": 32,
|
||||||
@ -54,5 +57,14 @@
|
|||||||
"MaxWantedChainsPerInstance": 1000,
|
"MaxWantedChainsPerInstance": 1000,
|
||||||
"RebroadcastInterval": 2000000000,
|
"RebroadcastInterval": 2000000000,
|
||||||
"MaxTimestampAge": 8000000000
|
"MaxTimestampAge": 8000000000
|
||||||
|
},
|
||||||
|
"PartialMessageManager": {
|
||||||
|
"PendingDiscoveredChainsBufferSize": 100,
|
||||||
|
"PendingPartialMessagesBufferSize": 100,
|
||||||
|
"PendingChainBroadcastsBufferSize": 100,
|
||||||
|
"PendingInstanceRemovalBufferSize": 10,
|
||||||
|
"CompletedMessagesBufferSize": 100,
|
||||||
|
"MaxBufferedMessagesPerInstance": 25000,
|
||||||
|
"MaxCachedValidatedMessagesPerInstance": 25000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
chain/lf3/testdata/contract_return.hex
vendored
2
chain/lf3/testdata/contract_return.hex
vendored
@ -1 +1 @@
|
|||||||
00000000000000000000000000000000000000000000000000000000004C4B400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000023D8554C172DA3014BCF3150CE78E079B06486FC1D0363321A590B6874E0FB2FC8C35C8922BC90D6926FFDE27D9C27620539F9EB52B7977DF939F07C3E168432A0DA30FC38C700DEFDC8A924652C9BF83D24C0AC4AEDCFAAD6086117E2BB42182DA3D63B7BE90D268A348B92A25CD2D7DEC1E07DE837994EA704F0ABB6194310E54323172E0EA58724699D9C84750088B8AF3FA537B2115AC620FB4E21A110E78200987EEB65816053306E04ECA4342E801C1B0D6111343F36FE50D677B5180301669747AA99FCA24B3EBCFF882AF4BE086E0EBB4C7F2C0024FFF9265E8408AFAB8A881BF568433F3E458EB8A1B861E9D89B021ACC9D1EA233990742B2B916A1FB1D5991326B003A5D490DE81D89BDC99F01FDF42A2244929D1C64A9059B620AE7F6732CF991DB161307993B62B152AB3ED0DC2374968A2F7D131125FEAA6C66D861B504CDAA326E3D7F23E32E17242F0BA1B2D79EA85E653B52E9740999DC846826FFF4FC718B69E6C39BDF67514446D399FFA7A12CC425FBF0FE6A7ADD3209AF97A165CB9EA5723E233E6D219ADBE95BF568B51159C9288411996314A0CAC8E3427620F6D34311A14660BBF2BD0E68115202B5377FA55503B507F409D11A767C43513ACA88A8DE478470DEE22FC62F2D8BA0BBC30BAD0CB4D95ECAAA4235A16381CDA3661256CFCA9BF9CAD693BC0E776F1184D152B8DED5F9565A076756293A895E5F65E187A84FC5FE774734E57BBC6974C53893941EA0ED138799D1F55D873FF83A0EDFFF13A23DF4929BA10A6ED099E509437CEF0BC17E3E065F00F000000
|
00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002a38554c172da3010bde72b18ce190f360d90de82a16966424a214d0f9d1e16790d9ac8922bcb4dd24cfebd2bd9c63698810323ebbd5dbd7dbbd2fb45afd75f429e61ff732f0691e1a5dbd1ca28a6c413ea8c2b49d8d8eddf496e38883b991990ccc60cdcfe542993190de93c556c47db5703f773e0039a17a59f1f20b101fd980b648acbbe03e7afa9e08c9ba57a414db0cc85288eda4aa5711e56402dae14e18047d8086c86852a49b83188f74a3d6f803d13e8173a42306cf723bd117c2b1394c622a5ce4aea6dba89edfe3b7dd0e70c8501fa1cb5581530a5ecdfe2982a50b2481794f0f71c04376f8eb5c885e154a32bc22f090b78b5fa608710ad542ea3cc7a5682e10eb8a40ea42ac3e81ee5d6ec5c11d5e12bdc68051183cc58092a8ea7e0fa7724f398d910eb7bc393b475aa49996dafe79f245111ad430744fc289a1ad61e2e517365530d0787f2be70e97c22f0ba692dbcb54cab5cb555ce90713b91a584aafdbf1ca357d76497a3eb6a1d7841bd9c8caaf5d01bfbd5fa9337d9878ebc605cadc7de955bfd2e457c255f1aa3d52ee59fd562748e7b2742d486c79c81c1f92bdb81dc626d4d48054ab3c23f3966e69127a8725374fac0a835eabfa88f88a323e2824b9ee4c95209baa386a240743a4fadebe0f941472f97f9669d6f1aa25542c391d926cca5b53f2a6b6e4eef39d2ed8240d82265ce98e6a9b12dcde318f5ba30d10f2625f5897c8dc8bea80c39a4d556db838f4d3e79c430a8cd70b11d578da0eaaddbdfd7fd8352e0339e3145ddc1c825c968de1bcfa3dff2fc2790d9e7788d8bd6e84dd0d1423b099421496f5cc1938ee681b64f6569dd0224fdebe6dd941197dbc312da16ef4f2cd9ed9c67c82ee1b4aae70cb9f2638589a2aa0fc897f5fc09ace7e1544ef2a7406a66dbf2e0aa6566086c87d1e1b475c558772f3efe030000000000000000000000000000000000000000000000000000000000
|
@ -30,7 +30,10 @@ Manifest:
|
|||||||
Certificate Exchange Min Poll Interval: {{.CertificateExchange.MinimumPollInterval}}
|
Certificate Exchange Min Poll Interval: {{.CertificateExchange.MinimumPollInterval}}
|
||||||
Certificate Exchange Max Poll Interval: {{.CertificateExchange.MaximumPollInterval}}
|
Certificate Exchange Max Poll Interval: {{.CertificateExchange.MaximumPollInterval}}
|
||||||
|
|
||||||
PubSub Compression Enabled: {{.PubSub.CompressionEnabled}}
|
PubSub Compression Enabled: {{.PubSub.CompressionEnabled}}
|
||||||
|
PubSub Chain Compression Enabled: {{.PubSub.ChainCompressionEnabled}}
|
||||||
|
PubSub GMessage Subscription Buffer Size: {{.PubSub.GMessageSubscriptionBufferSize}}
|
||||||
|
PubSub Validated Message Buffer Size: {{.PubSub.ValidatedMessageBufferSize}}
|
||||||
|
|
||||||
Chain Exchange Subscription Buffer Size: {{.ChainExchange.SubscriptionBufferSize}}
|
Chain Exchange Subscription Buffer Size: {{.ChainExchange.SubscriptionBufferSize}}
|
||||||
Chain Exchange Max Chain Length: {{.ChainExchange.MaxChainLength}}
|
Chain Exchange Max Chain Length: {{.ChainExchange.MaxChainLength}}
|
||||||
@ -39,3 +42,11 @@ Manifest:
|
|||||||
Chain Exchange Max Wanted Chains Per Instance: {{.ChainExchange.MaxWantedChainsPerInstance}}
|
Chain Exchange Max Wanted Chains Per Instance: {{.ChainExchange.MaxWantedChainsPerInstance}}
|
||||||
Chain Exchange Rebroadcast Interval: {{.ChainExchange.RebroadcastInterval}}
|
Chain Exchange Rebroadcast Interval: {{.ChainExchange.RebroadcastInterval}}
|
||||||
Chain Exchange Max Timestamp Age: {{.ChainExchange.MaxTimestampAge}}
|
Chain Exchange Max Timestamp Age: {{.ChainExchange.MaxTimestampAge}}
|
||||||
|
|
||||||
|
Partial Message Pending Discovered Chains Buffer Size: {{.PartialMessageManager.PendingDiscoveredChainsBufferSize}}
|
||||||
|
Partial Message Pending Partial Messages Buffer Size: {{.PartialMessageManager.PendingPartialMessagesBufferSize}}
|
||||||
|
Partial Message Pending Chain Broadcasts Buffer Size: {{.PartialMessageManager.PendingChainBroadcastsBufferSize}}
|
||||||
|
Partial Message Pending Instance Removal Buffer Size: {{.PartialMessageManager.PendingInstanceRemovalBufferSize}}
|
||||||
|
Partial Message Completed Messages Buffer Size: {{.PartialMessageManager.CompletedMessagesBufferSize}}
|
||||||
|
Partial Message Max Buffered Messages Per Instance: {{.PartialMessageManager.MaxBufferedMessagesPerInstance}}
|
||||||
|
Partial Message Max Cached Validated Messages Per Instance: {{.PartialMessageManager.MaxCachedValidatedMessagesPerInstance}}
|
||||||
|
@ -2648,7 +2648,10 @@ Response:
|
|||||||
"MaximumPollInterval": 0
|
"MaximumPollInterval": 0
|
||||||
},
|
},
|
||||||
"PubSub": {
|
"PubSub": {
|
||||||
"CompressionEnabled": false
|
"CompressionEnabled": false,
|
||||||
|
"ChainCompressionEnabled": false,
|
||||||
|
"GMessageSubscriptionBufferSize": 0,
|
||||||
|
"ValidatedMessageBufferSize": 0
|
||||||
},
|
},
|
||||||
"ChainExchange": {
|
"ChainExchange": {
|
||||||
"SubscriptionBufferSize": 0,
|
"SubscriptionBufferSize": 0,
|
||||||
@ -2658,6 +2661,15 @@ Response:
|
|||||||
"MaxWantedChainsPerInstance": 0,
|
"MaxWantedChainsPerInstance": 0,
|
||||||
"RebroadcastInterval": 0,
|
"RebroadcastInterval": 0,
|
||||||
"MaxTimestampAge": 0
|
"MaxTimestampAge": 0
|
||||||
|
},
|
||||||
|
"PartialMessageManager": {
|
||||||
|
"PendingDiscoveredChainsBufferSize": 0,
|
||||||
|
"PendingPartialMessagesBufferSize": 0,
|
||||||
|
"PendingChainBroadcastsBufferSize": 0,
|
||||||
|
"PendingInstanceRemovalBufferSize": 0,
|
||||||
|
"CompletedMessagesBufferSize": 0,
|
||||||
|
"MaxBufferedMessagesPerInstance": 0,
|
||||||
|
"MaxCachedValidatedMessagesPerInstance": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -2708,9 +2720,26 @@ Inputs: `null`
|
|||||||
Response:
|
Response:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"ID": 42,
|
"ID": 1413,
|
||||||
"Round": 42,
|
"Round": 1,
|
||||||
"Phase": 0
|
"Phase": 4,
|
||||||
|
"Input": [
|
||||||
|
{
|
||||||
|
"Key": [
|
||||||
|
{
|
||||||
|
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"/": "bafy2bzacebp3shtrn43k7g3unredz7fxn4gj533d3o43tqn2p2ipxxhrvchve"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Commitments": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"Epoch": 0,
|
||||||
|
"PowerTable": {
|
||||||
|
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
6
go.mod
6
go.mod
@ -1,6 +1,6 @@
|
|||||||
module github.com/filecoin-project/lotus
|
module github.com/filecoin-project/lotus
|
||||||
|
|
||||||
go 1.23.6
|
go 1.23.7
|
||||||
|
|
||||||
retract v1.14.0 // Accidentally force-pushed tag, use v1.14.1+ instead.
|
retract v1.14.0 // Accidentally force-pushed tag, use v1.14.1+ instead.
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ require (
|
|||||||
github.com/filecoin-project/go-cbor-util v0.0.1
|
github.com/filecoin-project/go-cbor-util v0.0.1
|
||||||
github.com/filecoin-project/go-commp-utils/v2 v2.1.0
|
github.com/filecoin-project/go-commp-utils/v2 v2.1.0
|
||||||
github.com/filecoin-project/go-crypto v0.1.0
|
github.com/filecoin-project/go-crypto v0.1.0
|
||||||
github.com/filecoin-project/go-f3 v0.8.2
|
github.com/filecoin-project/go-f3 v0.8.3
|
||||||
github.com/filecoin-project/go-fil-commcid v0.2.0
|
github.com/filecoin-project/go-fil-commcid v0.2.0
|
||||||
github.com/filecoin-project/go-hamt-ipld/v3 v3.4.0
|
github.com/filecoin-project/go-hamt-ipld/v3 v3.4.0
|
||||||
github.com/filecoin-project/go-jsonrpc v0.7.0
|
github.com/filecoin-project/go-jsonrpc v0.7.0
|
||||||
@ -157,7 +157,7 @@ require (
|
|||||||
go.uber.org/zap v1.27.0
|
go.uber.org/zap v1.27.0
|
||||||
golang.org/x/crypto v0.35.0
|
golang.org/x/crypto v0.35.0
|
||||||
golang.org/x/mod v0.23.0
|
golang.org/x/mod v0.23.0
|
||||||
golang.org/x/net v0.35.0
|
golang.org/x/net v0.36.0
|
||||||
golang.org/x/sync v0.11.0
|
golang.org/x/sync v0.11.0
|
||||||
golang.org/x/sys v0.30.0
|
golang.org/x/sys v0.30.0
|
||||||
golang.org/x/term v0.29.0
|
golang.org/x/term v0.29.0
|
||||||
|
8
go.sum
8
go.sum
@ -280,8 +280,8 @@ github.com/filecoin-project/go-commp-utils/v2 v2.1.0/go.mod h1:NbxJYlhxtWaNhlVCj
|
|||||||
github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ=
|
github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ=
|
||||||
github.com/filecoin-project/go-crypto v0.1.0 h1:Pob2MphoipMbe/ksxZOMcQvmBHAd3sI/WEqcbpIsGI0=
|
github.com/filecoin-project/go-crypto v0.1.0 h1:Pob2MphoipMbe/ksxZOMcQvmBHAd3sI/WEqcbpIsGI0=
|
||||||
github.com/filecoin-project/go-crypto v0.1.0/go.mod h1:K9UFXvvoyAVvB+0Le7oGlKiT9mgA5FHOJdYQXEE8IhI=
|
github.com/filecoin-project/go-crypto v0.1.0/go.mod h1:K9UFXvvoyAVvB+0Le7oGlKiT9mgA5FHOJdYQXEE8IhI=
|
||||||
github.com/filecoin-project/go-f3 v0.8.2 h1:oH1KOMvr4jGTvqUNfM7+4VcznJYjXa1z86Notp744nc=
|
github.com/filecoin-project/go-f3 v0.8.3 h1:0ToWoqJDsunr+Jf945Upvk6rdXn8It5B5LcyiY1Ry1k=
|
||||||
github.com/filecoin-project/go-f3 v0.8.2/go.mod h1:dAqNQ59L/zxjt32KI5kM8gzPtN8odwYHTjNcEq5wp1s=
|
github.com/filecoin-project/go-f3 v0.8.3/go.mod h1:KWksfw7CabMuL4ple/J52gK4soYBpTsL6i5WAgtJDqw=
|
||||||
github.com/filecoin-project/go-fil-commcid v0.2.0 h1:B+5UX8XGgdg/XsdUpST4pEBviKkFOw+Fvl2bLhSKGpI=
|
github.com/filecoin-project/go-fil-commcid v0.2.0 h1:B+5UX8XGgdg/XsdUpST4pEBviKkFOw+Fvl2bLhSKGpI=
|
||||||
github.com/filecoin-project/go-fil-commcid v0.2.0/go.mod h1:8yigf3JDIil+/WpqR5zoKyP0jBPCOGtEqq/K1CcMy9Q=
|
github.com/filecoin-project/go-fil-commcid v0.2.0/go.mod h1:8yigf3JDIil+/WpqR5zoKyP0jBPCOGtEqq/K1CcMy9Q=
|
||||||
github.com/filecoin-project/go-fil-commp-hashhash v0.2.0 h1:HYIUugzjq78YvV3vC6rL95+SfC/aSTVSnZSZiDV5pCk=
|
github.com/filecoin-project/go-fil-commp-hashhash v0.2.0 h1:HYIUugzjq78YvV3vC6rL95+SfC/aSTVSnZSZiDV5pCk=
|
||||||
@ -1568,8 +1568,8 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
|
|||||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||||
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
|
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
|
||||||
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
|
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
|
||||||
golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
|
golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA=
|
||||||
golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
|
golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
|
@ -476,8 +476,9 @@ func newTestManifest(networkName gpbft.NetworkName, bootstrapEpoch int64, blockt
|
|||||||
MinimumPollInterval: blocktime,
|
MinimumPollInterval: blocktime,
|
||||||
MaximumPollInterval: 4 * blocktime,
|
MaximumPollInterval: 4 * blocktime,
|
||||||
},
|
},
|
||||||
PubSub: manifest.DefaultPubSubConfig,
|
PubSub: manifest.DefaultPubSubConfig,
|
||||||
ChainExchange: manifest.DefaultChainExchangeConfig,
|
ChainExchange: manifest.DefaultChainExchangeConfig,
|
||||||
|
PartialMessageManager: manifest.DefaultPartialMessageManagerConfig,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,9 +85,9 @@ func (f3api *F3API) F3GetF3PowerTable(ctx context.Context, tsk types.TipSetKey)
|
|||||||
return f3api.F3.GetF3PowerTable(ctx, tsk)
|
return f3api.F3.GetF3PowerTable(ctx, tsk)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f3api *F3API) F3GetProgress(context.Context) (gpbft.Instant, error) {
|
func (f3api *F3API) F3GetProgress(context.Context) (gpbft.InstanceProgress, error) {
|
||||||
if f3api.F3 == nil {
|
if f3api.F3 == nil {
|
||||||
return gpbft.Instant{}, api.ErrF3Disabled
|
return gpbft.InstanceProgress{}, api.ErrF3Disabled
|
||||||
}
|
}
|
||||||
return f3api.F3.Progress(), nil
|
return f3api.F3.Progress(), nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user