attestantio / go-eth2-client

Apache License 2.0
102 stars 59 forks source link

Does client handle minimal preset ? #99

Closed aBMania closed 5 months ago

aBMania commented 5 months ago

Hello !

I'm trying to use the client with a private network using minimal presets.

I'm getting these errors:

{
  "level": "error",
  "service": "blocks",
  "impl": "standard",
  "slot": 0,
  "error": "failed to update block: failed to obtain beacon block for slot 0: failed to unmarshal data: invalid JSON: invalid JSON: invalid JSON: sync committee bits too short",
  "time": "2024-01-25T11:04:29+01:00",
  "message": "Failed to catchup"
}

I've done some digging and my sync committe bits look like this:

        "sync_aggregate": {
          "sync_committee_bits": "0xffffffff",
          "sync_committee_signature": "0x937c1e4b791666762a003c494c558da7368ff9898b0a29cac3418c390c77a9b91f837a54a77a900e4275fbe902cd1d8101b93d23fc7bf74d3fb2ab21c8f5df493019e2a982c0fa7238265a8f484e9e77c8cc7196d0fd0fc97cc01d87622f8f99"
        },

I see that SyncCommitteeBits is expected to be of size 64 in the code (512 / 8):

// SyncAggregate is the Ethereum 2 sync aggregate structure.
type SyncAggregate struct {
    SyncCommitteeBits      bitfield.Bitvector512 `ssz-size:"64"`
    SyncCommitteeSignature phase0.BLSSignature   `ssz-size:"96"`
}

But using minimal preset, the size is lower (32).

Is it planned to be supported?

Thanks

mcdee commented 5 months ago

We do not support minimal configuration. Due to the difference in SSZ layouts it is difficult to support multiple configurations, and given the relative lack of use of the minimal configuration we don't believe that it is worth the cost or risk to do so.

It would, of course, be possible to run a fork of this repo designed for the minimal configuration if that is a requirement for you. If you do so, please feel free to let us know and we can link it from the README here for others looking for the same thing.