@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
- // check uncompressed data length before we actually decompress
73
- const uncompressedDataLength = snappyWasm.decompress_len(data);
74
- if (uncompressedDataLength > this.maxSizePerMessage) {
75
- throw Error(`ssz_snappy decoded data length ${uncompressedDataLength} > ${this.maxSizePerMessage}`);
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
- const compressedData = Buffer.allocUnsafe(snappyWasm.max_compress_len(data.length));
100
- const compressedLen = encoder.compress_into(data, compressedData);
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":"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"}
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.90bd72f10c",
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.90bd72f10c",
125
- "@lodestar/config": "1.27.0-dev.90bd72f10c",
126
- "@lodestar/db": "1.27.0-dev.90bd72f10c",
127
- "@lodestar/fork-choice": "1.27.0-dev.90bd72f10c",
128
- "@lodestar/light-client": "1.27.0-dev.90bd72f10c",
129
- "@lodestar/logger": "1.27.0-dev.90bd72f10c",
130
- "@lodestar/params": "1.27.0-dev.90bd72f10c",
131
- "@lodestar/reqresp": "1.27.0-dev.90bd72f10c",
132
- "@lodestar/state-transition": "1.27.0-dev.90bd72f10c",
133
- "@lodestar/types": "1.27.0-dev.90bd72f10c",
134
- "@lodestar/utils": "1.27.0-dev.90bd72f10c",
135
- "@lodestar/validator": "1.27.0-dev.90bd72f10c",
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": "b23b2b21995c9241c8b03b057b69c19b9afcd99e"
171
+ "gitHead": "9326bc6f7917eea46ddbc51dd4047527fdc4ee0d"
172
172
  }