remove web3signer block signing V1 (phase0 only) support (#5014)
This commit is contained in:
parent
939b3002e4
commit
ce1503b51f
|
@ -394,13 +394,12 @@ OK: 6/6 Fail: 0/6 Skip: 0/6
|
|||
+ Signing aggregation slot (getSlotSignature()) OK
|
||||
+ Signing attestation (getAttestationSignature()) OK
|
||||
+ Signing deposit message (getDepositMessageSignature()) OK
|
||||
+ Signing phase0 block OK
|
||||
+ Signing randao reveal (getEpochSignature()) OK
|
||||
+ Signing validator registration (getBuilderSignature()) OK
|
||||
+ Signing voluntary exit (getValidatorExitSignature()) OK
|
||||
+ Waiting for signing node (/upcheck) test OK
|
||||
```
|
||||
OK: 22/22 Fail: 0/22 Skip: 0/22
|
||||
OK: 21/21 Fail: 0/21 Skip: 0/21
|
||||
## Old database versions [Preset: mainnet]
|
||||
```diff
|
||||
+ pre-1.1.0 OK
|
||||
|
@ -691,4 +690,4 @@ OK: 2/2 Fail: 0/2 Skip: 0/2
|
|||
OK: 9/9 Fail: 0/9 Skip: 0/9
|
||||
|
||||
---TOTAL---
|
||||
OK: 392/397 Fail: 0/397 Skip: 5/397
|
||||
OK: 391/396 Fail: 0/396 Skip: 5/396
|
||||
|
|
|
@ -214,14 +214,6 @@ proc installApiHandlers*(node: SigningNodeRef) =
|
|||
forkInfo.genesis_validators_root, request.attestation,
|
||||
validator.data.privateKey).toValidatorSig().toHex()
|
||||
signatureResponse(Http200, signature)
|
||||
of Web3SignerRequestKind.Block:
|
||||
let
|
||||
forkInfo = request.forkInfo.get()
|
||||
blck = request.blck
|
||||
signature = get_block_signature(forkInfo.fork,
|
||||
forkInfo.genesis_validators_root, blck.slot, hash_tree_root(blck),
|
||||
validator.data.privateKey).toValidatorSig().toHex()
|
||||
signatureResponse(Http200, signature)
|
||||
of Web3SignerRequestKind.BlockV2:
|
||||
if node.config.expectedFeeRecipient.isNone():
|
||||
let
|
||||
|
|
|
@ -1947,14 +1947,6 @@ proc writeValue*(writer: var JsonWriter[RestJson],
|
|||
if isSome(value.signingRoot):
|
||||
writer.writeField("signingRoot", value.signingRoot)
|
||||
writer.writeField("attestation", value.attestation)
|
||||
of Web3SignerRequestKind.Block:
|
||||
doAssert(value.forkInfo.isSome(),
|
||||
"forkInfo should be set for this type of request")
|
||||
writer.writeField("type", "BLOCK")
|
||||
writer.writeField("fork_info", value.forkInfo.get())
|
||||
if isSome(value.signingRoot):
|
||||
writer.writeField("signingRoot", value.signingRoot)
|
||||
writer.writeField("block", value.blck)
|
||||
of Web3SignerRequestKind.BlockV2:
|
||||
doAssert(value.forkInfo.isSome(),
|
||||
"forkInfo should be set for this type of request")
|
||||
|
@ -2052,8 +2044,6 @@ proc readValue*(reader: var JsonReader[RestJson],
|
|||
Web3SignerRequestKind.AggregateAndProof
|
||||
of "ATTESTATION":
|
||||
Web3SignerRequestKind.Attestation
|
||||
of "BLOCK":
|
||||
Web3SignerRequestKind.Block
|
||||
of "BLOCK_V2":
|
||||
Web3SignerRequestKind.BlockV2
|
||||
of "DEPOSIT":
|
||||
|
@ -2151,22 +2141,6 @@ proc readValue*(reader: var JsonReader[RestJson],
|
|||
kind: Web3SignerRequestKind.Attestation,
|
||||
forkInfo: forkInfo, signingRoot: signingRoot, attestation: data
|
||||
)
|
||||
of Web3SignerRequestKind.Block:
|
||||
if dataName != "block":
|
||||
reader.raiseUnexpectedValue("Field `block` is missing")
|
||||
if forkInfo.isNone():
|
||||
reader.raiseUnexpectedValue("Field `fork_info` is missing")
|
||||
let data =
|
||||
block:
|
||||
let res = decodeJsonString(phase0.BeaconBlock, data.get())
|
||||
if res.isErr():
|
||||
reader.raiseUnexpectedValue(
|
||||
"Incorrect field `block` format")
|
||||
res.get()
|
||||
Web3SignerRequest(
|
||||
kind: Web3SignerRequestKind.Block,
|
||||
forkInfo: forkInfo, signingRoot: signingRoot, blck: data
|
||||
)
|
||||
of Web3SignerRequestKind.BlockV2:
|
||||
# https://github.com/ConsenSys/web3signer/blob/41834a927088f1bde7a097e17d19e954d0058e54/core/src/main/resources/openapi-specs/eth2/signing/schemas.yaml#L421-L425 (branch v22.7.0)
|
||||
# It's the "beacon_block" field even when it's not a block, but a header
|
||||
|
|
|
@ -585,7 +585,7 @@ type
|
|||
proof*: seq[Eth2Digest]
|
||||
|
||||
Web3SignerRequestKind* {.pure.} = enum
|
||||
AggregationSlot, AggregateAndProof, Attestation, Block, BlockV2,
|
||||
AggregationSlot, AggregateAndProof, Attestation, BlockV2,
|
||||
Deposit, RandaoReveal, VoluntaryExit, SyncCommitteeMessage,
|
||||
SyncCommitteeSelectionProof, SyncCommitteeContributionAndProof,
|
||||
ValidatorRegistration
|
||||
|
@ -602,9 +602,6 @@ type
|
|||
serializedFieldName: "aggregate_and_proof".}: AggregateAndProof
|
||||
of Web3SignerRequestKind.Attestation:
|
||||
attestation*: AttestationData
|
||||
of Web3SignerRequestKind.Block:
|
||||
blck* {.
|
||||
serializedFieldName: "block".}: phase0.BeaconBlock
|
||||
of Web3SignerRequestKind.BlockV2:
|
||||
beaconBlock* {.
|
||||
serializedFieldName: "beacon_block".}: Web3SignerForkedBeaconBlock
|
||||
|
@ -801,19 +798,6 @@ func init*(t: typedesc[Web3SignerRequest], fork: Fork,
|
|||
attestation: data
|
||||
)
|
||||
|
||||
func init*(t: typedesc[Web3SignerRequest], fork: Fork,
|
||||
genesis_validators_root: Eth2Digest, data: phase0.BeaconBlock,
|
||||
signingRoot: Option[Eth2Digest] = none[Eth2Digest]()
|
||||
): Web3SignerRequest =
|
||||
Web3SignerRequest(
|
||||
kind: Web3SignerRequestKind.Block,
|
||||
forkInfo: some(Web3SignerForkInfo(
|
||||
fork: fork, genesis_validators_root: genesis_validators_root
|
||||
)),
|
||||
signingRoot: signingRoot,
|
||||
blck: data
|
||||
)
|
||||
|
||||
func init*(t: typedesc[Web3SignerRequest], fork: Fork,
|
||||
genesis_validators_root: Eth2Digest,
|
||||
data: Web3SignerForkedBeaconBlock,
|
||||
|
|
|
@ -426,55 +426,6 @@ suite "Nimbus remote signer/signing test (web3signer)":
|
|||
finally:
|
||||
await client.closeWait()
|
||||
|
||||
asyncTest "Signing phase0 block":
|
||||
let
|
||||
forked = getBlock(ConsensusFork.Phase0)
|
||||
blockRoot = withBlck(forked): hash_tree_root(blck)
|
||||
request = Web3SignerRequest.init(SigningFork, GenesisValidatorsRoot,
|
||||
forked.phase0Data)
|
||||
remoteUrl = "http://" & SigningNodeAddress & ":" &
|
||||
$getNodePort(basePort, RemoteSignerType.Web3Signer)
|
||||
prestoFlags = {RestClientFlag.CommaSeparatedArray}
|
||||
rclient = RestClientRef.new(remoteUrl, prestoFlags, {})
|
||||
|
||||
check rclient.isOk()
|
||||
let client = rclient.get()
|
||||
let
|
||||
sres1 =
|
||||
await validator1.getBlockSignature(SigningFork, GenesisValidatorsRoot,
|
||||
Slot(1), blockRoot, forked)
|
||||
sres2 =
|
||||
await validator2.getBlockSignature(SigningFork, GenesisValidatorsRoot,
|
||||
Slot(1), blockRoot, forked)
|
||||
sres3 =
|
||||
await validator3.getBlockSignature(SigningFork, GenesisValidatorsRoot,
|
||||
Slot(1), blockRoot, forked)
|
||||
|
||||
check:
|
||||
sres1.isOk()
|
||||
sres2.isOk()
|
||||
sres3.isOk()
|
||||
|
||||
try:
|
||||
let
|
||||
publicKey1 = ValidatorPubKey.fromHex(ValidatorPubKey1).get()
|
||||
publicKey2 = ValidatorPubKey.fromHex(ValidatorPubKey2).get()
|
||||
publicKey3 = ValidatorPubKey.fromHex(ValidatorPubKey3).get()
|
||||
response1 = await client.signData(publicKey1, request)
|
||||
response2 = await client.signData(publicKey2, request)
|
||||
response3 = await client.signData(publicKey3, request)
|
||||
|
||||
check:
|
||||
response1.isOk()
|
||||
response2.isOk()
|
||||
response3.isOk()
|
||||
response1.get().toValidatorSig() == sres1.get()
|
||||
response2.get().toValidatorSig() == sres2.get()
|
||||
response3.get().toValidatorSig() == sres3.get()
|
||||
|
||||
finally:
|
||||
await client.closeWait()
|
||||
|
||||
asyncTest "Signing aggregation slot (getSlotSignature())":
|
||||
let
|
||||
sres1 =
|
||||
|
|
Loading…
Reference in New Issue