@lodestar/beacon-node 1.27.0-dev.90bd72f10c → 1.27.0-dev.92d77e3443
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { digest } from "@chainsafe/as-sha256";
|
|
2
|
-
import snappyWasm from "@chainsafe/snappy-wasm";
|
|
3
2
|
import { ForkName } from "@lodestar/params";
|
|
4
3
|
import { intToBytes } from "@lodestar/utils";
|
|
4
|
+
import { compress, uncompress } from "snappyjs";
|
|
5
5
|
import xxhashFactory from "xxhash-wasm";
|
|
6
6
|
import { MESSAGE_DOMAIN_VALID_SNAPPY } from "./constants.js";
|
|
7
7
|
import { getGossipSSZType } from "./topic.js";
|
|
@@ -9,9 +9,6 @@ import { getGossipSSZType } from "./topic.js";
|
|
|
9
9
|
const xxhash = await xxhashFactory();
|
|
10
10
|
// Use salt to prevent msgId from being mined for collisions
|
|
11
11
|
const h64Seed = BigInt(Math.floor(Math.random() * 1e9));
|
|
12
|
-
// create singleton snappy encoder + decoder
|
|
13
|
-
const encoder = new snappyWasm.Encoder();
|
|
14
|
-
const decoder = new snappyWasm.Decoder();
|
|
15
12
|
// Shared buffer to convert msgId to string
|
|
16
13
|
const sharedMsgIdBuf = Buffer.alloc(20);
|
|
17
14
|
/**
|
|
@@ -69,11 +66,10 @@ export class DataTransformSnappy {
|
|
|
69
66
|
* - `outboundTransform()`: compress snappy payload
|
|
70
67
|
*/
|
|
71
68
|
inboundTransform(topicStr, data) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
69
|
+
const uncompressedData = uncompress(data, this.maxSizePerMessage);
|
|
70
|
+
// check uncompressed data length before we extract beacon block root, slot or
|
|
71
|
+
// attestation data at later steps
|
|
72
|
+
const uncompressedDataLength = uncompressedData.length;
|
|
77
73
|
const topic = this.gossipTopicCache.getTopic(topicStr);
|
|
78
74
|
const sszType = getGossipSSZType(topic);
|
|
79
75
|
if (uncompressedDataLength < sszType.minSize) {
|
|
@@ -82,23 +78,18 @@ export class DataTransformSnappy {
|
|
|
82
78
|
if (uncompressedDataLength > sszType.maxSize) {
|
|
83
79
|
throw Error(`ssz_snappy decoded data length ${uncompressedDataLength} > ${sszType.maxSize}`);
|
|
84
80
|
}
|
|
85
|
-
// Only after saniy length checks, we can decompress the data
|
|
86
|
-
const uncompressedData = Buffer.allocUnsafe(uncompressedDataLength);
|
|
87
|
-
decoder.decompress_into(data, uncompressedData);
|
|
88
81
|
return uncompressedData;
|
|
89
82
|
}
|
|
90
83
|
/**
|
|
91
84
|
* Takes the data to be published (a topic and associated data) transforms the data. The
|
|
92
85
|
* transformed data will then be used to create a `RawGossipsubMessage` to be sent to peers.
|
|
93
86
|
*/
|
|
94
|
-
// No need to parse topic, everything is snappy compressed
|
|
95
87
|
outboundTransform(_topicStr, data) {
|
|
96
88
|
if (data.length > this.maxSizePerMessage) {
|
|
97
89
|
throw Error(`ssz_snappy encoded data length ${data.length} > ${this.maxSizePerMessage}`);
|
|
98
90
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return compressedData.subarray(0, compressedLen);
|
|
91
|
+
// No need to parse topic, everything is snappy compressed
|
|
92
|
+
return compress(data);
|
|
102
93
|
}
|
|
103
94
|
}
|
|
104
95
|
//# sourceMappingURL=encoding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../src/network/gossip/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../src/network/gossip/encoding.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.27.0-dev.
|
|
14
|
+
"version": "1.27.0-dev.92d77e3443",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -104,7 +104,6 @@
|
|
|
104
104
|
"@chainsafe/persistent-merkle-tree": "^1.0.1",
|
|
105
105
|
"@chainsafe/prometheus-gc-stats": "^1.0.0",
|
|
106
106
|
"@chainsafe/pubkey-index-map": "2.0.0",
|
|
107
|
-
"@chainsafe/snappy-wasm": "^0.5.0",
|
|
108
107
|
"@chainsafe/ssz": "^1.0.2",
|
|
109
108
|
"@chainsafe/threads": "^1.11.1",
|
|
110
109
|
"@ethersproject/abi": "^5.7.0",
|
|
@@ -121,18 +120,18 @@
|
|
|
121
120
|
"@libp2p/peer-id-factory": "^4.1.0",
|
|
122
121
|
"@libp2p/prometheus-metrics": "^3.0.21",
|
|
123
122
|
"@libp2p/tcp": "9.0.23",
|
|
124
|
-
"@lodestar/api": "1.27.0-dev.
|
|
125
|
-
"@lodestar/config": "1.27.0-dev.
|
|
126
|
-
"@lodestar/db": "1.27.0-dev.
|
|
127
|
-
"@lodestar/fork-choice": "1.27.0-dev.
|
|
128
|
-
"@lodestar/light-client": "1.27.0-dev.
|
|
129
|
-
"@lodestar/logger": "1.27.0-dev.
|
|
130
|
-
"@lodestar/params": "1.27.0-dev.
|
|
131
|
-
"@lodestar/reqresp": "1.27.0-dev.
|
|
132
|
-
"@lodestar/state-transition": "1.27.0-dev.
|
|
133
|
-
"@lodestar/types": "1.27.0-dev.
|
|
134
|
-
"@lodestar/utils": "1.27.0-dev.
|
|
135
|
-
"@lodestar/validator": "1.27.0-dev.
|
|
123
|
+
"@lodestar/api": "1.27.0-dev.92d77e3443",
|
|
124
|
+
"@lodestar/config": "1.27.0-dev.92d77e3443",
|
|
125
|
+
"@lodestar/db": "1.27.0-dev.92d77e3443",
|
|
126
|
+
"@lodestar/fork-choice": "1.27.0-dev.92d77e3443",
|
|
127
|
+
"@lodestar/light-client": "1.27.0-dev.92d77e3443",
|
|
128
|
+
"@lodestar/logger": "1.27.0-dev.92d77e3443",
|
|
129
|
+
"@lodestar/params": "1.27.0-dev.92d77e3443",
|
|
130
|
+
"@lodestar/reqresp": "1.27.0-dev.92d77e3443",
|
|
131
|
+
"@lodestar/state-transition": "1.27.0-dev.92d77e3443",
|
|
132
|
+
"@lodestar/types": "1.27.0-dev.92d77e3443",
|
|
133
|
+
"@lodestar/utils": "1.27.0-dev.92d77e3443",
|
|
134
|
+
"@lodestar/validator": "1.27.0-dev.92d77e3443",
|
|
136
135
|
"@multiformats/multiaddr": "^12.1.3",
|
|
137
136
|
"c-kzg": "^2.1.2",
|
|
138
137
|
"datastore-core": "^9.1.1",
|
|
@@ -147,6 +146,7 @@
|
|
|
147
146
|
"multiformats": "^11.0.1",
|
|
148
147
|
"prom-client": "^15.1.0",
|
|
149
148
|
"qs": "^6.11.1",
|
|
149
|
+
"snappyjs": "^0.7.0",
|
|
150
150
|
"strict-event-emitter-types": "^2.0.0",
|
|
151
151
|
"systeminformation": "^5.22.9",
|
|
152
152
|
"uint8arraylist": "^2.4.7",
|
|
@@ -168,5 +168,5 @@
|
|
|
168
168
|
"beacon",
|
|
169
169
|
"blockchain"
|
|
170
170
|
],
|
|
171
|
-
"gitHead": "
|
|
171
|
+
"gitHead": "9326bc6f7917eea46ddbc51dd4047527fdc4ee0d"
|
|
172
172
|
}
|