Skip to content

Commit ba92bd8

Browse files
authored
feat: add lodestar-bun and bun leveldb binding (#8462)
**Motivation** - #7280 **Description** - update `@types/node` to the latest node v22 version - add `@lodestar/bun` dependency using git+https (for now! so that we don't have to republish a bazillion times) - keep in mind that this requires a manual build/rebuild of the so (via `cd node_modules/@lodestar/bun && zig build`) - Add a bun-specific `LevelDbController` which uses [`@lodestar/bun`](https://github.com/ChainSafe/lodestar-bun) - Only expose the leveldb controller via a subpath export (and for tests, as a custom import, like in #8320 ) - add bun bun global override types
1 parent 98d359d commit ba92bd8

File tree

29 files changed

+353
-37
lines changed

29 files changed

+353
-37
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
run: scripts/assert_no_yarn_warnings.sh
5454

5555
- name: Lint yarn lockfile
56-
run: npx lockfile-lint --path yarn.lock --allowed-hosts npm yarn --validate-https
56+
run: npx lockfile-lint --path yarn.lock --allowed-hosts npm yarn github.com --allowed-schemes "https:" "git+https:"
5757

5858
- name: Lint Code
5959
run: yarn lint

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"@biomejs/biome": "^2.2.0",
4646
"@chainsafe/benchmark": "^1.2.3",
4747
"@chainsafe/biomejs-config": "^1.0.0",
48-
"@types/node": "^20.12.8",
48+
"@types/node": "^22.18.6",
4949
"@types/react": "^19.1.12",
5050
"@vitest/browser": "3.0.9",
5151
"@vitest/coverage-v8": "3.0.9",

packages/beacon-node/src/chain/archiveStore/historicalState/worker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import worker from "node:worker_threads";
22
import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
33
import {Transfer, expose} from "@chainsafe/threads/worker";
44
import {chainConfigFromJson, createBeaconConfig} from "@lodestar/config";
5-
import {LevelDbController} from "@lodestar/db";
5+
import {LevelDbController} from "@lodestar/db/controller/level";
66
import {getNodeLogger} from "@lodestar/logger/node";
77
import {BeaconDb} from "../../../db/index.js";
88
import {RegistryMetricCreator, collectNodeJSMetrics} from "../../../metrics/index.js";

packages/beacon-node/test/e2e/eth1/eth1ForBlockProduction.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {afterAll, beforeAll, describe, expect, it} from "vitest";
22
import {fromHexString, toHexString} from "@chainsafe/ssz";
3-
import {KeyValue, LevelDbController} from "@lodestar/db";
3+
import {KeyValue} from "@lodestar/db";
4+
import {LevelDbController} from "@lodestar/db/controller/level";
45
import {phase0, ssz} from "@lodestar/types";
56
import {sleep} from "@lodestar/utils";
67
import {BeaconDb} from "../../../src/db/index.js";

packages/beacon-node/test/perf/chain/produceBlock/produceBlockBody.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {generateKeyPair} from "@libp2p/crypto/keys";
22
import {afterAll, beforeAll, bench, describe} from "@chainsafe/benchmark";
33
import {fromHexString} from "@chainsafe/ssz";
44
import {config} from "@lodestar/config/default";
5-
import {LevelDbController} from "@lodestar/db";
5+
import {LevelDbController} from "@lodestar/db/controller/level";
66
import {SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY} from "@lodestar/params";
77
import {CachedBeaconStateAltair} from "@lodestar/state-transition";
88
import {defaultOptions as defaultValidatorOptions} from "@lodestar/validator";

packages/beacon-node/test/perf/chain/verifyImportBlocks.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {generateKeyPair} from "@libp2p/crypto/keys";
22
import {afterAll, beforeAll, bench, describe, setBenchOpts} from "@chainsafe/benchmark";
33
import {config} from "@lodestar/config/default";
4-
import {LevelDbController} from "@lodestar/db";
4+
import {LevelDbController} from "@lodestar/db/controller/level";
55
import {SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY, SLOTS_PER_EPOCH} from "@lodestar/params";
66
import {sleep, toHex} from "@lodestar/utils";
77
import {defaultOptions as defaultValidatorOptions} from "@lodestar/validator";

packages/beacon-node/test/unit/db/api/repositories/blockArchive.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import {rimraf} from "rimraf";
22
import {afterEach, beforeEach, describe, expect, it, vi} from "vitest";
33
import {config} from "@lodestar/config/default";
4-
import {LevelDbController, encodeKey} from "@lodestar/db";
4+
import {encodeKey} from "@lodestar/db";
5+
import {LevelDbController} from "@lodestar/db/controller/level";
56
import {ssz} from "@lodestar/types";
67
import {intToBytes} from "@lodestar/utils";
78
import {Bucket, getBucketNameByValue} from "../../../../../src/db/buckets.js";

packages/beacon-node/test/unit/db/api/repositories/dataColumn.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {rimraf} from "rimraf";
22
import {afterEach, beforeEach, describe, expect, it} from "vitest";
33
import {createChainForkConfig} from "@lodestar/config";
4-
import {LevelDbController} from "@lodestar/db";
4+
import {LevelDbController} from "@lodestar/db/controller/level";
55
import {NUMBER_OF_COLUMNS} from "@lodestar/params";
66
import {Root, fulu, ssz} from "@lodestar/types";
77
import {fromAsync, toHex} from "@lodestar/utils";

packages/beacon-node/test/unit/db/api/repository.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ import all from "it-all";
22
import {MockedObject, afterEach, beforeEach, describe, expect, it, vi} from "vitest";
33
import {ContainerType} from "@chainsafe/ssz";
44
import {config} from "@lodestar/config/default";
5-
import {Db, LevelDbController, Repository} from "@lodestar/db";
5+
import {Db, Repository} from "@lodestar/db";
6+
import {LevelDbController} from "@lodestar/db/controller/level";
67
import {Bytes32, ssz} from "@lodestar/types";
78
import {Bucket} from "../../../../src/db/buckets.js";
89

9-
vi.mock("@lodestar/db", async (importOriginal) => {
10-
const mod = await importOriginal<typeof import("@lodestar/db")>();
10+
vi.mock("@lodestar/db/controller/level", async (importOriginal) => {
11+
const mod = await importOriginal<typeof import("@lodestar/db/controller/level")>();
1112

1213
return {
1314
...mod,

packages/beacon-node/test/utils/db.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import childProcess from "node:child_process";
22
import {ChainForkConfig} from "@lodestar/config";
3-
import {FilterOptions, LevelDbController} from "@lodestar/db";
3+
import {FilterOptions} from "@lodestar/db";
4+
import {LevelDbController} from "@lodestar/db/controller/level";
45
import {BeaconDb} from "../../src/index.js";
56
import {testLogger} from "./logger.js";
67

0 commit comments

Comments
 (0)