{
"name": "seed-protocol-binary-v1",
"description": "Pins HiveRelay seed protocol compact-encoding frames, decoded objects, and reject codes as the first binary conformance fixture.",
"kind": "protocol-binary-conformance",
"protocol": "hiverelay-seed",
"version": 1,
"messages": [
{
"id": "seed-request-v2-tail",
"type": "seed-request",
"value": {
"appKey": "1111111111111111111111111111111111111111111111111111111111111111",
"discoveryKeys": [
"2222222222222222222222222222222222222222222222222222222222222222",
"3333333333333333333333333333333333333333333333333333333333333333"
],
"replicationFactor": 5,
"geoPreference": [
"NA",
"EU"
],
"maxStorageBytes": 123456789,
"bountyRate": 7,
"ttlSeconds": 86400,
"publisherPubkey": "4444444444444444444444444444444444444444444444444444444444444444",
"publisherSignature": "55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555",
"revocable": false,
"unseedFreezeMs": 60000,
"durability": 1
},
"frameHex": "11111111111111111111111111111111111111111111111111111111111111110222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333050b5b224e41222c224555225dfe15cd5b0707fe8051010044444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555500fd60ea01"
},
{
"id": "seed-accept",
"type": "seed-accept",
"value": {
"appKey": "1111111111111111111111111111111111111111111111111111111111111111",
"relayPubkey": "6666666666666666666666666666666666666666666666666666666666666666",
"region": "EU",
"availableStorageBytes": 987654321,
"relaySignature": "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"
},
"frameHex": "11111111111111111111111111111111111111111111111111111111111111116666666666666666666666666666666666666666666666666666666666666666024555feb168de3a77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"
},
{
"id": "seed-deny",
"type": "seed-deny",
"value": {
"appKey": "1111111111111111111111111111111111111111111111111111111111111111",
"relayPubkey": "6666666666666666666666666666666666666666666666666666666666666666",
"reasonCode": "queued-for-review",
"detail": "pending operator review",
"relaySignature": "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
},
"frameHex": "11111111111111111111111111111111111111111111111111111111111111116666666666666666666666666666666666666666666666666666666666666666117175657565642d666f722d7265766965771770656e64696e67206f70657261746f722072657669657788888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
},
{
"id": "unseed-request",
"type": "unseed-request",
"value": {
"appKey": "1111111111111111111111111111111111111111111111111111111111111111",
"timestamp": 1700000000000,
"publisherPubkey": "4444444444444444444444444444444444444444444444444444444444444444",
"publisherSignature": "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"
},
"frameHex": "1111111111111111111111111111111111111111111111111111111111111111ff0068e5cf8b010000444444444444444444444444444444444444444444444444444444444444444499999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"
}
],
"malformed": [
{
"id": "seed-request-too-many-discovery-keys",
"type": "seed-request",
"frameHex": "111111111111111111111111111111111111111111111111111111111111111141",
"expectedError": "too many discovery keys"
},
{
"id": "seed-request-geo-too-large",
"type": "seed-request",
"frameHex": "11111111111111111111111111111111111111111111111111111111111111110003fd0108",
"expectedError": "geoPreference too large"
},
{
"id": "seed-accept-region-too-large",
"type": "seed-accept",
"frameHex": "1111111111111111111111111111111111111111111111111111111111111111666666666666666666666666666666666666666666666666666666666666666641",
"expectedError": "region too large"
},
{
"id": "seed-deny-detail-too-large",
"type": "seed-deny",
"frameHex": "1111111111111111111111111111111111111111111111111111111111111111666666666666666666666666666666666666666666666666666666666666666603626164fd0102",
"expectedError": "detail too large"
},
{
"id": "unseed-request-truncated",
"type": "unseed-request",
"frameHex": "1111111111111111111111111111111111111111111111111111111111111111ff0068e5cf8b010000",
"expectedError": "malformed unseed request"
}
],
"encodeFailures": [
{
"id": "seed-deny-detail-too-large-outbound",
"type": "seed-deny",
"value": {
"appKey": "1111111111111111111111111111111111111111111111111111111111111111",
"relayPubkey": "6666666666666666666666666666666666666666666666666666666666666666",
"reasonCode": "queued-for-review",
"detail": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"relaySignature": "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
},
"expectedError": "detail too large"
}
]
}