@lodestar/validator 1.48.0-dev.f22c5ce63e → 1.48.0-dev.f63ac74039
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/services/validatorStore.js +1 -1
- package/lib/services/validatorStore.js.map +1 -1
- package/lib/slashingProtection/attestation/attestationByTargetRepository.d.ts +2 -0
- package/lib/slashingProtection/attestation/attestationByTargetRepository.d.ts.map +1 -1
- package/lib/slashingProtection/attestation/attestationByTargetRepository.js +11 -0
- package/lib/slashingProtection/attestation/attestationByTargetRepository.js.map +1 -1
- package/lib/slashingProtection/attestation/errors.d.ts +10 -1
- package/lib/slashingProtection/attestation/errors.d.ts.map +1 -1
- package/lib/slashingProtection/attestation/errors.js +5 -0
- package/lib/slashingProtection/attestation/errors.js.map +1 -1
- package/lib/slashingProtection/attestation/index.d.ts.map +1 -1
- package/lib/slashingProtection/attestation/index.js +41 -2
- package/lib/slashingProtection/attestation/index.js.map +1 -1
- package/lib/slashingProtection/minMaxSurround/minMaxSurround.d.ts +3 -1
- package/lib/slashingProtection/minMaxSurround/minMaxSurround.d.ts.map +1 -1
- package/lib/slashingProtection/minMaxSurround/minMaxSurround.js +7 -2
- package/lib/slashingProtection/minMaxSurround/minMaxSurround.js.map +1 -1
- package/lib/util/externalSignerClient.d.ts +2 -2
- package/lib/util/externalSignerClient.d.ts.map +1 -1
- package/lib/util/externalSignerClient.js +38 -10
- package/lib/util/externalSignerClient.js.map +1 -1
- package/package.json +13 -13
- package/src/services/validatorStore.ts +1 -1
- package/src/slashingProtection/attestation/attestationByTargetRepository.ts +12 -0
- package/src/slashingProtection/attestation/errors.ts +10 -0
- package/src/slashingProtection/attestation/index.ts +43 -2
- package/src/slashingProtection/minMaxSurround/minMaxSurround.ts +9 -3
- package/src/util/externalSignerClient.ts +40 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validatorStore.js","sourceRoot":"","sources":["../../src/services/validatorStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validatorStore.js","sourceRoot":"","sources":["../../src/services/validatorStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ export declare class AttestationByTargetRepository {
|
|
|
18
18
|
private readonly maxKey;
|
|
19
19
|
constructor(db: LodestarValidatorDatabaseController);
|
|
20
20
|
getAll(pubkey: BLSPubkey, limit?: number): Promise<SlashingProtectionAttestation[]>;
|
|
21
|
+
/** Attestation with the highest target epoch recorded for `pubkey`, or null if none */
|
|
22
|
+
getLatest(pubkey: BLSPubkey): Promise<SlashingProtectionAttestation | null>;
|
|
21
23
|
get(pubkey: BLSPubkey, targetEpoch: Epoch): Promise<SlashingProtectionAttestation | null>;
|
|
22
24
|
set(pubkey: BLSPubkey, atts: SlashingProtectionAttestation[]): Promise<void>;
|
|
23
25
|
listPubkeys(): Promise<BLSPubkey[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestationByTargetRepository.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/attestationByTargetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAC,SAAS,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAC,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAC,mCAAmC,EAAC,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAG1D;;;;GAIG;AACH,qBAAa,6BAA6B;IAS5B,SAAS,CAAC,EAAE,EAAE,mCAAmC;IAR7D,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,SAAgD;IAEhE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,YAAsB,EAAE,EAAE,mCAAmC,EAQ5D;IAEK,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAQxF;IAEK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAG9F;IAEK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjF;IAEK,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAGxC;IAED,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;CASlB"}
|
|
1
|
+
{"version":3,"file":"attestationByTargetRepository.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/attestationByTargetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAC,SAAS,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAC,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAC,mCAAmC,EAAC,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAG1D;;;;GAIG;AACH,qBAAa,6BAA6B;IAS5B,SAAS,CAAC,EAAE,EAAE,mCAAmC;IAR7D,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,SAAgD;IAEhE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,YAAsB,EAAE,EAAE,mCAAmC,EAQ5D;IAEK,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAQxF;IAED,uFAAuF;IACjF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAShF;IAEK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAG9F;IAEK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjF;IAEK,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAGxC;IAED,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;CASlB"}
|
|
@@ -36,6 +36,17 @@ export class AttestationByTargetRepository {
|
|
|
36
36
|
});
|
|
37
37
|
return attestations.map((attestation) => this.type.deserialize(attestation));
|
|
38
38
|
}
|
|
39
|
+
/** Attestation with the highest target epoch recorded for `pubkey`, or null if none */
|
|
40
|
+
async getLatest(pubkey) {
|
|
41
|
+
const [att] = await this.db.values({
|
|
42
|
+
gte: this.encodeKey(pubkey, 0),
|
|
43
|
+
lt: this.encodeKey(pubkey, Number.MAX_SAFE_INTEGER),
|
|
44
|
+
reverse: true,
|
|
45
|
+
limit: 1,
|
|
46
|
+
bucketId: this.bucketId,
|
|
47
|
+
});
|
|
48
|
+
return att ? this.type.deserialize(att) : null;
|
|
49
|
+
}
|
|
39
50
|
async get(pubkey, targetEpoch) {
|
|
40
51
|
const att = await this.db.get(this.encodeKey(pubkey, targetEpoch), this.dbReqOpts);
|
|
41
52
|
return att && this.type.deserialize(att);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestationByTargetRepository.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/attestationByTargetRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attestationByTargetRepository.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/attestationByTargetRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,12 @@ export declare enum InvalidAttestationErrorCode {
|
|
|
27
27
|
* The attestation is invalid because its target epoch is less than or equal to the lower
|
|
28
28
|
* bound on target epochs for this validator.
|
|
29
29
|
*/
|
|
30
|
-
TARGET_LESS_THAN_OR_EQ_LOWER_BOUND = "ERR_INVALID_ATTESTATION_TARGET_LESS_THAN_OR_EQ_LOWER_BOUND"
|
|
30
|
+
TARGET_LESS_THAN_OR_EQ_LOWER_BOUND = "ERR_INVALID_ATTESTATION_TARGET_LESS_THAN_OR_EQ_LOWER_BOUND",
|
|
31
|
+
/**
|
|
32
|
+
* The attestation is invalid because its source epoch is below the min-max span lookback window of the
|
|
33
|
+
* latest attestation of this validator, where a surround vote could not be detected.
|
|
34
|
+
*/
|
|
35
|
+
SOURCE_BELOW_MIN_SPAN_LOOKBACK = "ERR_INVALID_ATTESTATION_SOURCE_BELOW_MIN_SPAN_LOOKBACK"
|
|
31
36
|
}
|
|
32
37
|
type InvalidAttestationErrorType = {
|
|
33
38
|
code: InvalidAttestationErrorCode.DOUBLE_VOTE;
|
|
@@ -51,6 +56,10 @@ type InvalidAttestationErrorType = {
|
|
|
51
56
|
code: InvalidAttestationErrorCode.TARGET_LESS_THAN_OR_EQ_LOWER_BOUND;
|
|
52
57
|
targetEpoch: Epoch;
|
|
53
58
|
minTargetEpoch: Epoch;
|
|
59
|
+
} | {
|
|
60
|
+
code: InvalidAttestationErrorCode.SOURCE_BELOW_MIN_SPAN_LOOKBACK;
|
|
61
|
+
sourceEpoch: Epoch;
|
|
62
|
+
minSourceEpoch: Epoch;
|
|
54
63
|
};
|
|
55
64
|
export declare class InvalidAttestationError extends LodestarError<InvalidAttestationErrorType> {
|
|
56
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAE1D,oBAAY,2BAA2B;IACrC;;OAEG;IACH,WAAW,wCAAwC;IACnD;;OAEG;IACH,kBAAkB,+CAA+C;IACjE;;OAEG;IACH,kBAAkB,+CAA+C;IACjE;;OAEG;IACH,qBAAqB,kDAAkD;IACvE;;;OAGG;IACH,4BAA4B,yDAAyD;IACrF;;;OAGG;IACH,kCAAkC,+DAA+D;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAE1D,oBAAY,2BAA2B;IACrC;;OAEG;IACH,WAAW,wCAAwC;IACnD;;OAEG;IACH,kBAAkB,+CAA+C;IACjE;;OAEG;IACH,kBAAkB,+CAA+C;IACjE;;OAEG;IACH,qBAAqB,kDAAkD;IACvE;;;OAGG;IACH,4BAA4B,yDAAyD;IACrF;;;OAGG;IACH,kCAAkC,+DAA+D;IACjG;;;OAGG;IACH,8BAA8B,2DAA2D;CAC1F;AAED,KAAK,2BAA2B,GAC5B;IACE,IAAI,EAAE,2BAA2B,CAAC,WAAW,CAAC;IAC9C,WAAW,EAAE,6BAA6B,CAAC;IAC3C,IAAI,EAAE,6BAA6B,CAAC;CACrC,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;IACrD,WAAW,EAAE,6BAA6B,CAAC;IAE3C,IAAI,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC5C,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;IACrD,WAAW,EAAE,6BAA6B,CAAC;IAE3C,IAAI,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC5C,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,qBAAqB,CAAC;CACzD,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,4BAA4B,CAAC;IAC/D,WAAW,EAAE,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,kCAAkC,CAAC;IACrE,WAAW,EAAE,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC,8BAA8B,CAAC;IACjE,WAAW,EAAE,KAAK,CAAC;IACnB,cAAc,EAAE,KAAK,CAAC;CACvB,CAAC;AAEN,qBAAa,uBAAwB,SAAQ,aAAa,CAAC,2BAA2B,CAAC;CAAG"}
|
|
@@ -27,6 +27,11 @@ export var InvalidAttestationErrorCode;
|
|
|
27
27
|
* bound on target epochs for this validator.
|
|
28
28
|
*/
|
|
29
29
|
InvalidAttestationErrorCode["TARGET_LESS_THAN_OR_EQ_LOWER_BOUND"] = "ERR_INVALID_ATTESTATION_TARGET_LESS_THAN_OR_EQ_LOWER_BOUND";
|
|
30
|
+
/**
|
|
31
|
+
* The attestation is invalid because its source epoch is below the min-max span lookback window of the
|
|
32
|
+
* latest attestation of this validator, where a surround vote could not be detected.
|
|
33
|
+
*/
|
|
34
|
+
InvalidAttestationErrorCode["SOURCE_BELOW_MIN_SPAN_LOOKBACK"] = "ERR_INVALID_ATTESTATION_SOURCE_BELOW_MIN_SPAN_LOOKBACK";
|
|
30
35
|
})(InvalidAttestationErrorCode || (InvalidAttestationErrorCode = {}));
|
|
31
36
|
export class InvalidAttestationError extends LodestarError {
|
|
32
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,MAAM,CAAN,IAAY,2BAgCX;AAhCD,WAAY,2BAA2B;IACrC;;OAEG;IACH,kFAAmD,CAAA;IACnD;;OAEG;IACH,gGAAiE,CAAA;IACjE;;OAEG;IACH,gGAAiE,CAAA;IACjE;;OAEG;IACH,sGAAuE,CAAA;IACvE;;;OAGG;IACH,oHAAqF,CAAA;IACrF;;;OAGG;IACH,gIAAiG,CAAA;IACjG;;;OAGG;IACH,wHAAyF,CAAA;AAC3F,CAAC,EAhCW,2BAA2B,KAA3B,2BAA2B,QAgCtC;AAuCD,MAAM,OAAO,uBAAwB,SAAQ,aAA0C;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,cAAc,EAAyD,MAAM,4BAA4B,CAAC;AAClH,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,uBAAuB,EAAE,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACjF,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,uBAAuB,EACvB,2BAA2B,GAC5B,CAAC;AAEF,aAAK,UAAU;IACb,SAAS,0BAA0B;IACnC,EAAE,mBAAmB;CACtB;AAED,qBAAa,oCAAoC;IAC/C,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,qBAAqB,CAAkC;IAC/D,OAAO,CAAC,cAAc,CAAiB;IAEvC,YACE,mBAAmB,EAAE,6BAA6B,EAClD,qBAAqB,EAAE,+BAA+B,EACtD,cAAc,EAAE,cAAc,EAK/B;IAED;;;OAGG;IACG,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5G;IAED;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,cAAc,EAAyD,MAAM,4BAA4B,CAAC;AAClH,OAAO,EAAC,6BAA6B,EAAC,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,uBAAuB,EAAE,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACjF,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,uBAAuB,EACvB,2BAA2B,GAC5B,CAAC;AAEF,aAAK,UAAU;IACb,SAAS,0BAA0B;IACnC,EAAE,mBAAmB;CACtB;AAED,qBAAa,oCAAoC;IAC/C,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,qBAAqB,CAAkC;IAC/D,OAAO,CAAC,cAAc,CAAiB;IAEvC,YACE,mBAAmB,EAAE,6BAA6B,EAClD,qBAAqB,EAAE,+BAA+B,EACtD,cAAc,EAAE,cAAc,EAK/B;IAED;;;OAGG;IACG,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5G;IAED;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC,CA4FzG;IAED;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpG;IAED;;OAEG;IACG,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAE3G;IAED;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCxG;IAED;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAEpF;IAEK,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAExC;CACF"}
|
|
@@ -38,9 +38,16 @@ export class SlashingProtectionAttestationService {
|
|
|
38
38
|
if (attestation.sourceEpoch > attestation.targetEpoch) {
|
|
39
39
|
throw new InvalidAttestationError({ code: InvalidAttestationErrorCode.SOURCE_EXCEEDS_TARGET });
|
|
40
40
|
}
|
|
41
|
+
const latestAtt = await this.attestationByTarget.getLatest(pubKey);
|
|
41
42
|
// Check for a double vote. Namely, an existing attestation with the same target epoch,
|
|
42
|
-
// and a different signing root.
|
|
43
|
-
|
|
43
|
+
// and a different signing root. No db read needed if the latest attestation has a lower target epoch.
|
|
44
|
+
let sameTargetAtt = null;
|
|
45
|
+
if (latestAtt && latestAtt.targetEpoch === attestation.targetEpoch) {
|
|
46
|
+
sameTargetAtt = latestAtt;
|
|
47
|
+
}
|
|
48
|
+
else if (latestAtt && latestAtt.targetEpoch > attestation.targetEpoch) {
|
|
49
|
+
sameTargetAtt = await this.attestationByTarget.get(pubKey, attestation.targetEpoch);
|
|
50
|
+
}
|
|
44
51
|
if (sameTargetAtt) {
|
|
45
52
|
// Interchange format allows for attestations without signing_root, then assume root is equal
|
|
46
53
|
if (isEqualNonZeroRoot(sameTargetAtt.signingRoot, attestation.signingRoot)) {
|
|
@@ -52,6 +59,19 @@ export class SlashingProtectionAttestationService {
|
|
|
52
59
|
prev: sameTargetAtt,
|
|
53
60
|
});
|
|
54
61
|
}
|
|
62
|
+
// Min-span entries only exist within the lookback window below each recorded source epoch, a surround vote
|
|
63
|
+
// with an older source epoch is undetectable by min-max surround and must be rejected outright. Recorded
|
|
64
|
+
// attestations are surround-free, so the latest one has the highest source epoch and the widest window.
|
|
65
|
+
if (latestAtt) {
|
|
66
|
+
const minSourceEpoch = this.minMaxSurround.minSpanCoverageStart(latestAtt.sourceEpoch);
|
|
67
|
+
if (attestation.sourceEpoch < minSourceEpoch) {
|
|
68
|
+
throw new InvalidAttestationError({
|
|
69
|
+
code: InvalidAttestationErrorCode.SOURCE_BELOW_MIN_SPAN_LOOKBACK,
|
|
70
|
+
sourceEpoch: attestation.sourceEpoch,
|
|
71
|
+
minSourceEpoch,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
55
75
|
// Check for a surround vote
|
|
56
76
|
try {
|
|
57
77
|
await this.minMaxSurround.assertNoSurround(pubKey, attestation);
|
|
@@ -119,6 +139,25 @@ export class SlashingProtectionAttestationService {
|
|
|
119
139
|
* Interchange import / export functionality
|
|
120
140
|
*/
|
|
121
141
|
async importAttestations(pubkey, attestations) {
|
|
142
|
+
// Min-max surround misses a surround vote beyond its lookback, require the highest target attestation to
|
|
143
|
+
// have the highest source epoch as `checkAttestation` relies on it
|
|
144
|
+
let latestAtt = await this.attestationByTarget.getLatest(pubkey);
|
|
145
|
+
let maxSourceAtt = latestAtt;
|
|
146
|
+
for (const attestation of attestations) {
|
|
147
|
+
if (latestAtt === null || attestation.targetEpoch >= latestAtt.targetEpoch) {
|
|
148
|
+
latestAtt = attestation;
|
|
149
|
+
}
|
|
150
|
+
if (maxSourceAtt === null || attestation.sourceEpoch > maxSourceAtt.sourceEpoch) {
|
|
151
|
+
maxSourceAtt = attestation;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (latestAtt && maxSourceAtt && latestAtt.sourceEpoch < maxSourceAtt.sourceEpoch) {
|
|
155
|
+
throw new InvalidAttestationError({
|
|
156
|
+
code: InvalidAttestationErrorCode.NEW_SURROUNDS_PREV,
|
|
157
|
+
attestation: latestAtt,
|
|
158
|
+
prev: maxSourceAtt,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
122
161
|
await this.attestationByTarget.set(pubkey, attestations);
|
|
123
162
|
// Pre-compute spans for all attestations
|
|
124
163
|
for (const attestation of attestations) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,wBAAwB,EAAE,4BAA4B,EAAC,MAAM,4BAA4B,CAAC;AAElH,OAAO,EAAC,kBAAkB,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,uBAAuB,EAAE,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACjF,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,uBAAuB,EACvB,2BAA2B,GAC5B,CAAC;AAEF,IAAK,UAGJ;AAHD,WAAK,UAAU;IACb,iDAAmC,CAAA;IACnC,mCAAqB,CAAA;AACvB,CAAC,EAHI,UAAU,KAAV,UAAU,QAGd;AAED,MAAM,OAAO,oCAAoC;IACvC,mBAAmB,CAAgC;IACnD,qBAAqB,CAAkC;IACvD,cAAc,CAAiB;IAEvC,YACE,mBAAkD,EAClD,qBAAsD,EACtD,cAA8B;QAE9B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB,CAAC,MAAiB,EAAE,WAA0C;QAC3F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAEpE,IAAI,UAAU,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,uDAAuD;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAiB,EAAE,WAA0C;QAClF,yEAAyE;QACzE,sFAAsF;QACtF,IAAI,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,IAAI,uBAAuB,CAAC,EAAC,IAAI,EAAE,2BAA2B,CAAC,qBAAqB,EAAC,CAAC,CAAC;QAC/F,CAAC;QAED,uFAAuF;QACvF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/slashingProtection/attestation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BLSPubkey } from "@lodestar/types";
|
|
1
|
+
import { BLSPubkey, Epoch } from "@lodestar/types";
|
|
2
2
|
import { IDistanceStore, IMinMaxSurround, MinMaxSurroundAttestation } from "./interface.js";
|
|
3
3
|
export declare class MinMaxSurround implements IMinMaxSurround {
|
|
4
4
|
private store;
|
|
@@ -6,6 +6,8 @@ export declare class MinMaxSurround implements IMinMaxSurround {
|
|
|
6
6
|
constructor(store: IDistanceStore, options?: {
|
|
7
7
|
maxEpochLookback?: number;
|
|
8
8
|
});
|
|
9
|
+
/** Lowest epoch with a min-span entry after inserting an attestation with `sourceEpoch` */
|
|
10
|
+
minSpanCoverageStart(sourceEpoch: Epoch): Epoch;
|
|
9
11
|
assertNoSurround(pubKey: BLSPubkey, attestation: MinMaxSurroundAttestation): Promise<void>;
|
|
10
12
|
insertAttestation(pubKey: BLSPubkey, attestation: MinMaxSurroundAttestation): Promise<void>;
|
|
11
13
|
private updateMinSpan;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minMaxSurround.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/minMaxSurround/minMaxSurround.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"minMaxSurround.d.ts","sourceRoot":"","sources":["../../../src/slashingProtection/minMaxSurround/minMaxSurround.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAgB,cAAc,EAAE,eAAe,EAAE,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AAsBzG,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,gBAAgB,CAAS;IAEjC,YAAY,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAC,EAGvE;IAED,2FAA2F;IAC3F,oBAAoB,CAAC,WAAW,EAAE,KAAK,GAAG,KAAK,CAE9C;IAEK,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/F;IAEK,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;YAIa,aAAa;YAkBb,oBAAoB;YAcpB,aAAa;YAgBb,mBAAmB;CAWlC"}
|
|
@@ -5,7 +5,8 @@ import { SurroundAttestationError, SurroundAttestationErrorCode } from "./errors
|
|
|
5
5
|
* Number of epochs in the past to check for surrounding attestations.
|
|
6
6
|
*
|
|
7
7
|
* This value can be limited to a reasonable high amount as Lodestar does not solely rely on this strategy but also
|
|
8
|
-
*
|
|
8
|
+
* rejects any source epoch below `minSpanCoverageStart` of the latest recorded attestation, which is the minimal
|
|
9
|
+
* strategy (formally proven safe, https://github.com/michaelsproul/slashing-proofs) relaxed by this lookback.
|
|
9
10
|
*
|
|
10
11
|
* Limiting this value is required due to practical reasons as otherwise there would be a min-span DB read and write
|
|
11
12
|
* for each validator from current epoch until genesis which massively increases DB size and causes I/O lag, resulting in
|
|
@@ -23,6 +24,10 @@ export class MinMaxSurround {
|
|
|
23
24
|
this.store = store;
|
|
24
25
|
this.maxEpochLookback = options?.maxEpochLookback ?? DEFAULT_MAX_EPOCH_LOOKBACK;
|
|
25
26
|
}
|
|
27
|
+
/** Lowest epoch with a min-span entry after inserting an attestation with `sourceEpoch` */
|
|
28
|
+
minSpanCoverageStart(sourceEpoch) {
|
|
29
|
+
return Math.max(0, sourceEpoch - 1 - this.maxEpochLookback);
|
|
30
|
+
}
|
|
26
31
|
async assertNoSurround(pubKey, attestation) {
|
|
27
32
|
await this.assertNotSurrounding(pubKey, attestation);
|
|
28
33
|
await this.assertNotSurrounded(pubKey, attestation);
|
|
@@ -34,7 +39,7 @@ export class MinMaxSurround {
|
|
|
34
39
|
// min span
|
|
35
40
|
async updateMinSpan(pubKey, attestation) {
|
|
36
41
|
await this.assertNotSurrounding(pubKey, attestation);
|
|
37
|
-
const untilEpoch =
|
|
42
|
+
const untilEpoch = this.minSpanCoverageStart(attestation.sourceEpoch);
|
|
38
43
|
const values = [];
|
|
39
44
|
for (let epoch = attestation.sourceEpoch - 1; epoch >= untilEpoch; epoch--) {
|
|
40
45
|
const minSpan = await this.store.minSpan.get(pubKey, epoch);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minMaxSurround.js","sourceRoot":"","sources":["../../../src/slashingProtection/minMaxSurround/minMaxSurround.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,wBAAwB,EAAE,4BAA4B,EAAC,MAAM,aAAa,CAAC;AAGnF,+CAA+C;AAC/C,gEAAgE;AAEhE
|
|
1
|
+
{"version":3,"file":"minMaxSurround.js","sourceRoot":"","sources":["../../../src/slashingProtection/minMaxSurround/minMaxSurround.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export declare enum SignableMessageType {
|
|
|
18
18
|
SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF = "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF",
|
|
19
19
|
VALIDATOR_REGISTRATION = "VALIDATOR_REGISTRATION",
|
|
20
20
|
EXECUTION_PAYLOAD_ENVELOPE = "EXECUTION_PAYLOAD_ENVELOPE",
|
|
21
|
-
|
|
21
|
+
PAYLOAD_ATTESTATION_MESSAGE = "PAYLOAD_ATTESTATION_MESSAGE",
|
|
22
22
|
PROPOSER_PREFERENCES = "PROPOSER_PREFERENCES",
|
|
23
23
|
BUILDER_REQUEST_AUTH = "BUILDER_REQUEST_AUTH"
|
|
24
24
|
}
|
|
@@ -80,7 +80,7 @@ export type SignableMessage = {
|
|
|
80
80
|
type: SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE;
|
|
81
81
|
data: gloas.ExecutionPayloadEnvelope;
|
|
82
82
|
} | {
|
|
83
|
-
type: SignableMessageType.
|
|
83
|
+
type: SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE;
|
|
84
84
|
data: gloas.PayloadAttestationData;
|
|
85
85
|
} | {
|
|
86
86
|
type: SignableMessageType.PROPOSER_PREFERENCES;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalSignerClient.d.ts","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"externalSignerClient.d.ts","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAA0B,gBAAgB,EAA2B,MAAM,kBAAkB,CAAC;AAErG,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,KAAK,EACL,IAAI,EAEJ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,MAAM,EAGP,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC,oBAAY,mBAAmB;IAC7B,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,sBAAsB,2BAA2B;IACjD,8BAA8B,mCAAmC;IACjE,qCAAqC,0CAA0C;IAC/E,sBAAsB,2BAA2B;IACjD,0BAA0B,+BAA+B;IACzD,2BAA2B,gCAAgC;IAC3D,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;CAC9C;AAMD,QAAA,MAAM,WAAW;;;;;EAQhB,CAAC;AAMF,QAAA,MAAM,wBAAwB;;;EAM7B,CAAC;AAEF,QAAA,MAAM,+BAA+B;;;EAMpC,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB;IAAC,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;IAAC,IAAI,EAAE;QAAC,IAAI,EAAE,IAAI,CAAA;KAAC,CAAA;CAAC,GAChE;IAAC,IAAI,EAAE,mBAAmB,CAAC,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,CAAA;CAAC,GAC/E;IAAC,IAAI,EAAE,mBAAmB,CAAC,sBAAsB,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAC,GAC3E;IAAC,IAAI,EAAE,mBAAmB,CAAC,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,eAAe,CAAA;CAAC,GACrE;IAAC,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAA;CAAC,GAC9F;IAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAC,GACtE;IAAC,IAAI,EAAE,mBAAmB,CAAC,aAAa,CAAC;IAAC,IAAI,EAAE;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,CAAA;CAAC,GAC/D;IAAC,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAA;CAAC,GACtE;IAAC,IAAI,EAAE,mBAAmB,CAAC,sBAAsB,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,wBAAwB,CAAC,CAAA;CAAC,GAClG;IAAC,IAAI,EAAE,mBAAmB,CAAC,8BAA8B,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,+BAA+B,CAAC,CAAA;CAAC,GACjH;IAAC,IAAI,EAAE,mBAAmB,CAAC,qCAAqC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,oBAAoB,CAAA;CAAC,GACpG;IAAC,IAAI,EAAE,mBAAmB,CAAC,sBAAsB,CAAC;IAAC,IAAI,EAAE,uBAAuB,CAAA;CAAC,GACjF;IAAC,IAAI,EAAE,mBAAmB,CAAC,0BAA0B,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAA;CAAC,GAC5F;IAAC,IAAI,EAAE,mBAAmB,CAAC,2BAA2B,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,sBAAsB,CAAA;CAAC,GAC3F;IAAC,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAA;CAAC,GACjF;IAAC,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAA;CAAC,CAAC;AAsCrF;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOxF;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,IAAI,EACjB,WAAW,EAAE,IAAI,EACjB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ/E"}
|
|
@@ -18,7 +18,7 @@ export var SignableMessageType;
|
|
|
18
18
|
SignableMessageType["SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF"] = "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF";
|
|
19
19
|
SignableMessageType["VALIDATOR_REGISTRATION"] = "VALIDATOR_REGISTRATION";
|
|
20
20
|
SignableMessageType["EXECUTION_PAYLOAD_ENVELOPE"] = "EXECUTION_PAYLOAD_ENVELOPE";
|
|
21
|
-
SignableMessageType["
|
|
21
|
+
SignableMessageType["PAYLOAD_ATTESTATION_MESSAGE"] = "PAYLOAD_ATTESTATION_MESSAGE";
|
|
22
22
|
SignableMessageType["PROPOSER_PREFERENCES"] = "PROPOSER_PREFERENCES";
|
|
23
23
|
SignableMessageType["BUILDER_REQUEST_AUTH"] = "BUILDER_REQUEST_AUTH";
|
|
24
24
|
})(SignableMessageType || (SignableMessageType = {}));
|
|
@@ -56,7 +56,7 @@ const requiresForkInfo = {
|
|
|
56
56
|
[SignableMessageType.SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF]: true,
|
|
57
57
|
[SignableMessageType.VALIDATOR_REGISTRATION]: false,
|
|
58
58
|
[SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE]: true,
|
|
59
|
-
[SignableMessageType.
|
|
59
|
+
[SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE]: true,
|
|
60
60
|
[SignableMessageType.PROPOSER_PREFERENCES]: true,
|
|
61
61
|
[SignableMessageType.BUILDER_REQUEST_AUTH]: false,
|
|
62
62
|
};
|
|
@@ -185,14 +185,42 @@ function serializerSignableMessagePayload(config, payload) {
|
|
|
185
185
|
return { contribution_and_proof: ssz.altair.ContributionAndProof.toJson(payload.data) };
|
|
186
186
|
case SignableMessageType.VALIDATOR_REGISTRATION:
|
|
187
187
|
return { validator_registration: ssz.bellatrix.ValidatorRegistrationV1.toJson(payload.data) };
|
|
188
|
-
case SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE:
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
188
|
+
case SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE: {
|
|
189
|
+
const slot = payload.data.payload.slotNumber;
|
|
190
|
+
return {
|
|
191
|
+
execution_payload_envelope: {
|
|
192
|
+
version: config.getForkName(slot).toUpperCase(),
|
|
193
|
+
data: config.getForkTypes(slot).ExecutionPayloadEnvelope.toJson(payload.data),
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
case SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE: {
|
|
198
|
+
const slot = payload.data.slot;
|
|
199
|
+
return {
|
|
200
|
+
payload_attestation_message: {
|
|
201
|
+
version: config.getForkName(slot).toUpperCase(),
|
|
202
|
+
data: config.getForkTypes(slot).PayloadAttestationData.toJson(payload.data),
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
case SignableMessageType.PROPOSER_PREFERENCES: {
|
|
207
|
+
const slot = payload.data.proposalSlot;
|
|
208
|
+
return {
|
|
209
|
+
proposer_preferences: {
|
|
210
|
+
version: config.getForkName(slot).toUpperCase(),
|
|
211
|
+
data: config.getForkTypes(slot).ProposerPreferences.toJson(payload.data),
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
case SignableMessageType.BUILDER_REQUEST_AUTH: {
|
|
216
|
+
const slot = payload.data.slot;
|
|
217
|
+
return {
|
|
218
|
+
builder_request_auth: {
|
|
219
|
+
version: config.getForkName(slot).toUpperCase(),
|
|
220
|
+
data: config.getForkTypes(slot).BuilderRequestAuth.toJson(payload.data),
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
}
|
|
196
224
|
}
|
|
197
225
|
}
|
|
198
226
|
function getForkInfoForSigning(config, signingSlot, messageType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalSignerClient.js","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"externalSignerClient.js","sourceRoot":"","sources":["../../src/util/externalSignerClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodestar/validator",
|
|
3
|
-
"version": "1.48.0-dev.
|
|
3
|
+
"version": "1.48.0-dev.f63ac74039",
|
|
4
4
|
"description": "A Typescript implementation of the validator client",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -49,22 +49,22 @@
|
|
|
49
49
|
],
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@chainsafe/lodestar-z": "catalog:",
|
|
52
|
-
"@chainsafe/ssz": "^1.
|
|
53
|
-
"@lodestar/api": "^1.48.0-dev.
|
|
54
|
-
"@lodestar/config": "^1.48.0-dev.
|
|
55
|
-
"@lodestar/db": "^1.48.0-dev.
|
|
56
|
-
"@lodestar/params": "^1.48.0-dev.
|
|
57
|
-
"@lodestar/state-transition": "^1.48.0-dev.
|
|
58
|
-
"@lodestar/types": "^1.48.0-dev.
|
|
59
|
-
"@lodestar/utils": "^1.48.0-dev.
|
|
52
|
+
"@chainsafe/ssz": "^1.8.0",
|
|
53
|
+
"@lodestar/api": "^1.48.0-dev.f63ac74039",
|
|
54
|
+
"@lodestar/config": "^1.48.0-dev.f63ac74039",
|
|
55
|
+
"@lodestar/db": "^1.48.0-dev.f63ac74039",
|
|
56
|
+
"@lodestar/params": "^1.48.0-dev.f63ac74039",
|
|
57
|
+
"@lodestar/state-transition": "^1.48.0-dev.f63ac74039",
|
|
58
|
+
"@lodestar/types": "^1.48.0-dev.f63ac74039",
|
|
59
|
+
"@lodestar/utils": "^1.48.0-dev.f63ac74039",
|
|
60
60
|
"strict-event-emitter-types": "^2.0.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@lodestar/logger": "^1.48.0-dev.
|
|
64
|
-
"@lodestar/spec-test-util": "^1.48.0-dev.
|
|
65
|
-
"@lodestar/test-utils": "^1.48.0-dev.
|
|
63
|
+
"@lodestar/logger": "^1.48.0-dev.f63ac74039",
|
|
64
|
+
"@lodestar/spec-test-util": "^1.48.0-dev.f63ac74039",
|
|
65
|
+
"@lodestar/test-utils": "^1.48.0-dev.f63ac74039",
|
|
66
66
|
"@vekexasia/bigint-buffer2": "^1.1.1",
|
|
67
67
|
"rimraf": "^4.4.1"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "6dc2bf45c782157e474964fc08888d06da6d68ca"
|
|
70
70
|
}
|
|
@@ -41,6 +41,18 @@ export class AttestationByTargetRepository {
|
|
|
41
41
|
return attestations.map((attestation) => this.type.deserialize(attestation));
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
/** Attestation with the highest target epoch recorded for `pubkey`, or null if none */
|
|
45
|
+
async getLatest(pubkey: BLSPubkey): Promise<SlashingProtectionAttestation | null> {
|
|
46
|
+
const [att] = await this.db.values({
|
|
47
|
+
gte: this.encodeKey(pubkey, 0),
|
|
48
|
+
lt: this.encodeKey(pubkey, Number.MAX_SAFE_INTEGER),
|
|
49
|
+
reverse: true,
|
|
50
|
+
limit: 1,
|
|
51
|
+
bucketId: this.bucketId,
|
|
52
|
+
});
|
|
53
|
+
return att ? this.type.deserialize(att) : null;
|
|
54
|
+
}
|
|
55
|
+
|
|
44
56
|
async get(pubkey: BLSPubkey, targetEpoch: Epoch): Promise<SlashingProtectionAttestation | null> {
|
|
45
57
|
const att = await this.db.get(this.encodeKey(pubkey, targetEpoch), this.dbReqOpts);
|
|
46
58
|
return att && this.type.deserialize(att);
|
|
@@ -29,6 +29,11 @@ export enum InvalidAttestationErrorCode {
|
|
|
29
29
|
* bound on target epochs for this validator.
|
|
30
30
|
*/
|
|
31
31
|
TARGET_LESS_THAN_OR_EQ_LOWER_BOUND = "ERR_INVALID_ATTESTATION_TARGET_LESS_THAN_OR_EQ_LOWER_BOUND",
|
|
32
|
+
/**
|
|
33
|
+
* The attestation is invalid because its source epoch is below the min-max span lookback window of the
|
|
34
|
+
* latest attestation of this validator, where a surround vote could not be detected.
|
|
35
|
+
*/
|
|
36
|
+
SOURCE_BELOW_MIN_SPAN_LOOKBACK = "ERR_INVALID_ATTESTATION_SOURCE_BELOW_MIN_SPAN_LOOKBACK",
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
type InvalidAttestationErrorType =
|
|
@@ -61,6 +66,11 @@ type InvalidAttestationErrorType =
|
|
|
61
66
|
code: InvalidAttestationErrorCode.TARGET_LESS_THAN_OR_EQ_LOWER_BOUND;
|
|
62
67
|
targetEpoch: Epoch;
|
|
63
68
|
minTargetEpoch: Epoch;
|
|
69
|
+
}
|
|
70
|
+
| {
|
|
71
|
+
code: InvalidAttestationErrorCode.SOURCE_BELOW_MIN_SPAN_LOOKBACK;
|
|
72
|
+
sourceEpoch: Epoch;
|
|
73
|
+
minSourceEpoch: Epoch;
|
|
64
74
|
};
|
|
65
75
|
|
|
66
76
|
export class InvalidAttestationError extends LodestarError<InvalidAttestationErrorType> {}
|
|
@@ -56,9 +56,16 @@ export class SlashingProtectionAttestationService {
|
|
|
56
56
|
throw new InvalidAttestationError({code: InvalidAttestationErrorCode.SOURCE_EXCEEDS_TARGET});
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
const latestAtt = await this.attestationByTarget.getLatest(pubKey);
|
|
60
|
+
|
|
59
61
|
// Check for a double vote. Namely, an existing attestation with the same target epoch,
|
|
60
|
-
// and a different signing root.
|
|
61
|
-
|
|
62
|
+
// and a different signing root. No db read needed if the latest attestation has a lower target epoch.
|
|
63
|
+
let sameTargetAtt: SlashingProtectionAttestation | null = null;
|
|
64
|
+
if (latestAtt && latestAtt.targetEpoch === attestation.targetEpoch) {
|
|
65
|
+
sameTargetAtt = latestAtt;
|
|
66
|
+
} else if (latestAtt && latestAtt.targetEpoch > attestation.targetEpoch) {
|
|
67
|
+
sameTargetAtt = await this.attestationByTarget.get(pubKey, attestation.targetEpoch);
|
|
68
|
+
}
|
|
62
69
|
if (sameTargetAtt) {
|
|
63
70
|
// Interchange format allows for attestations without signing_root, then assume root is equal
|
|
64
71
|
if (isEqualNonZeroRoot(sameTargetAtt.signingRoot, attestation.signingRoot)) {
|
|
@@ -71,6 +78,20 @@ export class SlashingProtectionAttestationService {
|
|
|
71
78
|
});
|
|
72
79
|
}
|
|
73
80
|
|
|
81
|
+
// Min-span entries only exist within the lookback window below each recorded source epoch, a surround vote
|
|
82
|
+
// with an older source epoch is undetectable by min-max surround and must be rejected outright. Recorded
|
|
83
|
+
// attestations are surround-free, so the latest one has the highest source epoch and the widest window.
|
|
84
|
+
if (latestAtt) {
|
|
85
|
+
const minSourceEpoch = this.minMaxSurround.minSpanCoverageStart(latestAtt.sourceEpoch);
|
|
86
|
+
if (attestation.sourceEpoch < minSourceEpoch) {
|
|
87
|
+
throw new InvalidAttestationError({
|
|
88
|
+
code: InvalidAttestationErrorCode.SOURCE_BELOW_MIN_SPAN_LOOKBACK,
|
|
89
|
+
sourceEpoch: attestation.sourceEpoch,
|
|
90
|
+
minSourceEpoch,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
74
95
|
// Check for a surround vote
|
|
75
96
|
try {
|
|
76
97
|
await this.minMaxSurround.assertNoSurround(pubKey, attestation);
|
|
@@ -143,6 +164,26 @@ export class SlashingProtectionAttestationService {
|
|
|
143
164
|
* Interchange import / export functionality
|
|
144
165
|
*/
|
|
145
166
|
async importAttestations(pubkey: BLSPubkey, attestations: SlashingProtectionAttestation[]): Promise<void> {
|
|
167
|
+
// Min-max surround misses a surround vote beyond its lookback, require the highest target attestation to
|
|
168
|
+
// have the highest source epoch as `checkAttestation` relies on it
|
|
169
|
+
let latestAtt = await this.attestationByTarget.getLatest(pubkey);
|
|
170
|
+
let maxSourceAtt = latestAtt;
|
|
171
|
+
for (const attestation of attestations) {
|
|
172
|
+
if (latestAtt === null || attestation.targetEpoch >= latestAtt.targetEpoch) {
|
|
173
|
+
latestAtt = attestation;
|
|
174
|
+
}
|
|
175
|
+
if (maxSourceAtt === null || attestation.sourceEpoch > maxSourceAtt.sourceEpoch) {
|
|
176
|
+
maxSourceAtt = attestation;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (latestAtt && maxSourceAtt && latestAtt.sourceEpoch < maxSourceAtt.sourceEpoch) {
|
|
180
|
+
throw new InvalidAttestationError({
|
|
181
|
+
code: InvalidAttestationErrorCode.NEW_SURROUNDS_PREV,
|
|
182
|
+
attestation: latestAtt,
|
|
183
|
+
prev: maxSourceAtt,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
|
|
146
187
|
await this.attestationByTarget.set(pubkey, attestations);
|
|
147
188
|
|
|
148
189
|
// Pre-compute spans for all attestations
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {BLSPubkey} from "@lodestar/types";
|
|
1
|
+
import {BLSPubkey, Epoch} from "@lodestar/types";
|
|
2
2
|
import {SurroundAttestationError, SurroundAttestationErrorCode} from "./errors.js";
|
|
3
3
|
import {DistanceEntry, IDistanceStore, IMinMaxSurround, MinMaxSurroundAttestation} from "./interface.js";
|
|
4
4
|
|
|
@@ -9,7 +9,8 @@ import {DistanceEntry, IDistanceStore, IMinMaxSurround, MinMaxSurroundAttestatio
|
|
|
9
9
|
* Number of epochs in the past to check for surrounding attestations.
|
|
10
10
|
*
|
|
11
11
|
* This value can be limited to a reasonable high amount as Lodestar does not solely rely on this strategy but also
|
|
12
|
-
*
|
|
12
|
+
* rejects any source epoch below `minSpanCoverageStart` of the latest recorded attestation, which is the minimal
|
|
13
|
+
* strategy (formally proven safe, https://github.com/michaelsproul/slashing-proofs) relaxed by this lookback.
|
|
13
14
|
*
|
|
14
15
|
* Limiting this value is required due to practical reasons as otherwise there would be a min-span DB read and write
|
|
15
16
|
* for each validator from current epoch until genesis which massively increases DB size and causes I/O lag, resulting in
|
|
@@ -30,6 +31,11 @@ export class MinMaxSurround implements IMinMaxSurround {
|
|
|
30
31
|
this.maxEpochLookback = options?.maxEpochLookback ?? DEFAULT_MAX_EPOCH_LOOKBACK;
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
/** Lowest epoch with a min-span entry after inserting an attestation with `sourceEpoch` */
|
|
35
|
+
minSpanCoverageStart(sourceEpoch: Epoch): Epoch {
|
|
36
|
+
return Math.max(0, sourceEpoch - 1 - this.maxEpochLookback);
|
|
37
|
+
}
|
|
38
|
+
|
|
33
39
|
async assertNoSurround(pubKey: BLSPubkey, attestation: MinMaxSurroundAttestation): Promise<void> {
|
|
34
40
|
await this.assertNotSurrounding(pubKey, attestation);
|
|
35
41
|
await this.assertNotSurrounded(pubKey, attestation);
|
|
@@ -45,7 +51,7 @@ export class MinMaxSurround implements IMinMaxSurround {
|
|
|
45
51
|
private async updateMinSpan(pubKey: BLSPubkey, attestation: MinMaxSurroundAttestation): Promise<void> {
|
|
46
52
|
await this.assertNotSurrounding(pubKey, attestation);
|
|
47
53
|
|
|
48
|
-
const untilEpoch =
|
|
54
|
+
const untilEpoch = this.minSpanCoverageStart(attestation.sourceEpoch);
|
|
49
55
|
|
|
50
56
|
const values: DistanceEntry[] = [];
|
|
51
57
|
for (let epoch = attestation.sourceEpoch - 1; epoch >= untilEpoch; epoch--) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {ContainerType, ValueOf} from "@chainsafe/ssz";
|
|
2
2
|
import {BeaconConfig} from "@lodestar/config";
|
|
3
|
-
import {ForkName, ForkPreBellatrix, ForkSeq, isForkPostDeneb} from "@lodestar/params";
|
|
3
|
+
import {ForkName, ForkPostGloas, ForkPreBellatrix, ForkSeq, isForkPostDeneb} from "@lodestar/params";
|
|
4
4
|
import {blindedOrFullBlockToHeader, computeEpochAtSlot} from "@lodestar/state-transition";
|
|
5
5
|
import {
|
|
6
6
|
AggregateAndProof,
|
|
@@ -34,7 +34,7 @@ export enum SignableMessageType {
|
|
|
34
34
|
SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF = "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF",
|
|
35
35
|
VALIDATOR_REGISTRATION = "VALIDATOR_REGISTRATION",
|
|
36
36
|
EXECUTION_PAYLOAD_ENVELOPE = "EXECUTION_PAYLOAD_ENVELOPE",
|
|
37
|
-
|
|
37
|
+
PAYLOAD_ATTESTATION_MESSAGE = "PAYLOAD_ATTESTATION_MESSAGE",
|
|
38
38
|
PROPOSER_PREFERENCES = "PROPOSER_PREFERENCES",
|
|
39
39
|
BUILDER_REQUEST_AUTH = "BUILDER_REQUEST_AUTH",
|
|
40
40
|
}
|
|
@@ -87,7 +87,7 @@ export type SignableMessage =
|
|
|
87
87
|
| {type: SignableMessageType.SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF; data: altair.ContributionAndProof}
|
|
88
88
|
| {type: SignableMessageType.VALIDATOR_REGISTRATION; data: ValidatorRegistrationV1}
|
|
89
89
|
| {type: SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE; data: gloas.ExecutionPayloadEnvelope}
|
|
90
|
-
| {type: SignableMessageType.
|
|
90
|
+
| {type: SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE; data: gloas.PayloadAttestationData}
|
|
91
91
|
| {type: SignableMessageType.PROPOSER_PREFERENCES; data: gloas.ProposerPreferences}
|
|
92
92
|
| {type: SignableMessageType.BUILDER_REQUEST_AUTH; data: gloas.BuilderRequestAuth};
|
|
93
93
|
|
|
@@ -105,7 +105,7 @@ const requiresForkInfo: Record<SignableMessageType, boolean> = {
|
|
|
105
105
|
[SignableMessageType.SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF]: true,
|
|
106
106
|
[SignableMessageType.VALIDATOR_REGISTRATION]: false,
|
|
107
107
|
[SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE]: true,
|
|
108
|
-
[SignableMessageType.
|
|
108
|
+
[SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE]: true,
|
|
109
109
|
[SignableMessageType.PROPOSER_PREFERENCES]: true,
|
|
110
110
|
[SignableMessageType.BUILDER_REQUEST_AUTH]: false,
|
|
111
111
|
};
|
|
@@ -280,17 +280,45 @@ function serializerSignableMessagePayload(config: BeaconConfig, payload: Signabl
|
|
|
280
280
|
case SignableMessageType.VALIDATOR_REGISTRATION:
|
|
281
281
|
return {validator_registration: ssz.bellatrix.ValidatorRegistrationV1.toJson(payload.data)};
|
|
282
282
|
|
|
283
|
-
case SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE:
|
|
284
|
-
|
|
283
|
+
case SignableMessageType.EXECUTION_PAYLOAD_ENVELOPE: {
|
|
284
|
+
const slot = payload.data.payload.slotNumber;
|
|
285
|
+
return {
|
|
286
|
+
execution_payload_envelope: {
|
|
287
|
+
version: config.getForkName(slot).toUpperCase(),
|
|
288
|
+
data: config.getForkTypes<ForkPostGloas>(slot).ExecutionPayloadEnvelope.toJson(payload.data),
|
|
289
|
+
},
|
|
290
|
+
};
|
|
291
|
+
}
|
|
285
292
|
|
|
286
|
-
case SignableMessageType.
|
|
287
|
-
|
|
293
|
+
case SignableMessageType.PAYLOAD_ATTESTATION_MESSAGE: {
|
|
294
|
+
const slot = payload.data.slot;
|
|
295
|
+
return {
|
|
296
|
+
payload_attestation_message: {
|
|
297
|
+
version: config.getForkName(slot).toUpperCase(),
|
|
298
|
+
data: config.getForkTypes<ForkPostGloas>(slot).PayloadAttestationData.toJson(payload.data),
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
}
|
|
288
302
|
|
|
289
|
-
case SignableMessageType.PROPOSER_PREFERENCES:
|
|
290
|
-
|
|
303
|
+
case SignableMessageType.PROPOSER_PREFERENCES: {
|
|
304
|
+
const slot = payload.data.proposalSlot;
|
|
305
|
+
return {
|
|
306
|
+
proposer_preferences: {
|
|
307
|
+
version: config.getForkName(slot).toUpperCase(),
|
|
308
|
+
data: config.getForkTypes<ForkPostGloas>(slot).ProposerPreferences.toJson(payload.data),
|
|
309
|
+
},
|
|
310
|
+
};
|
|
311
|
+
}
|
|
291
312
|
|
|
292
|
-
case SignableMessageType.BUILDER_REQUEST_AUTH:
|
|
293
|
-
|
|
313
|
+
case SignableMessageType.BUILDER_REQUEST_AUTH: {
|
|
314
|
+
const slot = payload.data.slot;
|
|
315
|
+
return {
|
|
316
|
+
builder_request_auth: {
|
|
317
|
+
version: config.getForkName(slot).toUpperCase(),
|
|
318
|
+
data: config.getForkTypes<ForkPostGloas>(slot).BuilderRequestAuth.toJson(payload.data),
|
|
319
|
+
},
|
|
320
|
+
};
|
|
321
|
+
}
|
|
294
322
|
}
|
|
295
323
|
}
|
|
296
324
|
|