@aztec/bb.js 3.0.0-devnet.2 → 3.0.0-devnet.2-patch.1
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.
- package/build/amd64-linux/bb +0 -0
- package/build/amd64-linux/nodejs_module.node +0 -0
- package/build/amd64-macos/bb +0 -0
- package/build/amd64-macos/nodejs_module.node +0 -0
- package/build/arm64-linux/bb +0 -0
- package/build/arm64-linux/nodejs_module.node +0 -0
- package/build/arm64-macos/bb +0 -0
- package/build/arm64-macos/nodejs_module.node +0 -0
- package/dest/browser/async_map/index.d.ts +1 -1
- package/dest/browser/async_map/index.js +1 -1
- package/dest/browser/barretenberg/backend.d.ts +30 -39
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +103 -98
- package/dest/browser/barretenberg/index.d.ts +4 -6
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +20 -29
- package/dest/browser/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/browser/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/browser/barretenberg/testing/bigint-buffer.js +37 -0
- package/dest/browser/barretenberg/testing/fields.d.ts +16 -0
- package/dest/browser/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/browser/barretenberg/testing/fields.js +47 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/browser/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/index.js +2 -3
- package/dest/browser/bb_backends/browser/index.d.ts +1 -1
- package/dest/browser/bb_backends/browser/index.js +1 -1
- package/dest/browser/bb_backends/browser/platform.d.ts +4 -0
- package/dest/browser/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/browser/bb_backends/browser/platform.js +10 -0
- package/dest/browser/bb_backends/index.d.ts +12 -7
- package/dest/browser/bb_backends/index.d.ts.map +1 -1
- package/dest/browser/bb_backends/index.js +8 -7
- package/dest/browser/bb_backends/interface.d.ts +1 -1
- package/dest/browser/bb_backends/wasm.d.ts +1 -1
- package/dest/browser/bb_backends/wasm.d.ts.map +1 -1
- package/dest/browser/bb_backends/wasm.js +5 -3
- package/dest/browser/bbapi_exception.d.ts +7 -0
- package/dest/browser/bbapi_exception.d.ts.map +1 -0
- package/dest/browser/bbapi_exception.js +14 -0
- package/dest/browser/bin/index.d.ts +3 -0
- package/dest/browser/bin/index.d.ts.map +1 -0
- package/dest/browser/bin/index.js +11 -0
- package/dest/browser/cbind/generate.d.ts +1 -1
- package/dest/browser/cbind/generate.js +93 -1
- package/dest/browser/cbind/generated/api_types.d.ts +632 -400
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/browser/cbind/generated/api_types.js +773 -465
- package/dest/browser/cbind/generated/async.d.ts +16 -11
- package/dest/browser/cbind/generated/async.d.ts.map +1 -1
- package/dest/browser/cbind/generated/async.js +305 -96
- package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/browser/cbind/generated/curve_constants.js +45 -0
- package/dest/browser/cbind/generated/sync.d.ts +16 -11
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
- package/dest/browser/cbind/generated/sync.js +300 -96
- package/dest/browser/cbind/schema_compiler.d.ts +1 -1
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/browser/cbind/schema_compiler.js +29 -8
- package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/browser/crs/browser/cached_net_crs.js +6 -1
- package/dest/browser/crs/browser/index.d.ts +1 -1
- package/dest/browser/crs/index.d.ts +1 -1
- package/dest/browser/crs/net_crs.d.ts +1 -16
- package/dest/browser/crs/net_crs.d.ts.map +1 -1
- package/dest/browser/crs/net_crs.js +6 -1
- package/dest/browser/index.d.ts +6 -3
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +5 -2
- package/dest/browser/proof/index.d.ts +1 -1
- package/dest/browser/proof/index.js +1 -1
- package/dest/browser/random/browser/index.d.ts +1 -1
- package/dest/browser/random/browser/index.d.ts.map +1 -1
- package/dest/browser/random/browser/index.js +1 -1
- package/dest/browser/random/index.d.ts +1 -1
- package/dest/browser/retry/index.d.ts +1 -1
- package/dest/browser/retry/index.js +1 -1
- package/dest/node/async_map/index.d.ts +1 -1
- package/dest/node/async_map/index.js +1 -1
- package/dest/node/barretenberg/backend.d.ts +30 -39
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +103 -98
- package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node/barretenberg/blake2s.test.js +2 -2
- package/dest/node/barretenberg/index.d.ts +4 -6
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +20 -29
- package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node/barretenberg/pedersen.test.js +2 -2
- package/dest/node/barretenberg/poseidon.bench.test.d.ts +1 -1
- package/dest/node/barretenberg/poseidon.bench.test.js +81 -79
- package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node/barretenberg/poseidon.test.js +2 -2
- package/dest/node/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
- package/dest/node/barretenberg/testing/fields.d.ts +16 -0
- package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/node/barretenberg/testing/fields.js +47 -0
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/node/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +5 -6
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.js +14 -6
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
- package/dest/node/barretenberg_wasm/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/index.js +2 -3
- package/dest/node/barretenberg_wasm/index.test.d.ts +1 -1
- package/dest/node/barretenberg_wasm/index.test.js +1 -1
- package/dest/node/bb_backends/browser/index.d.ts +1 -1
- package/dest/node/bb_backends/browser/index.js +1 -1
- package/dest/node/bb_backends/browser/platform.d.ts +4 -0
- package/dest/node/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/node/bb_backends/browser/platform.js +10 -0
- package/dest/node/bb_backends/index.d.ts +12 -7
- package/dest/node/bb_backends/index.d.ts.map +1 -1
- package/dest/node/bb_backends/index.js +8 -7
- package/dest/node/bb_backends/interface.d.ts +1 -1
- package/dest/node/bb_backends/node/index.d.ts +1 -1
- package/dest/node/bb_backends/node/index.d.ts.map +1 -1
- package/dest/node/bb_backends/node/index.js +17 -11
- package/dest/node/bb_backends/node/native_pipe.d.ts +1 -1
- package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_pipe.js +11 -10
- package/dest/node/bb_backends/node/native_shm.d.ts +3 -3
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_shm.js +61 -39
- package/dest/node/bb_backends/node/native_shm_async.d.ts +51 -0
- package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm_async.js +232 -0
- package/dest/node/bb_backends/node/native_socket.d.ts +2 -2
- package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_socket.js +43 -31
- package/dest/node/bb_backends/node/platform.d.ts +1 -1
- package/dest/node/bb_backends/node/platform.d.ts.map +1 -1
- package/dest/node/bb_backends/node/platform.js +7 -2
- package/dest/node/bb_backends/wasm.d.ts +1 -1
- package/dest/node/bb_backends/wasm.d.ts.map +1 -1
- package/dest/node/bb_backends/wasm.js +5 -3
- package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node/bbapi/exception_handling.test.js +48 -0
- package/dest/node/bbapi_exception.d.ts +7 -0
- package/dest/node/bbapi_exception.d.ts.map +1 -0
- package/dest/node/bbapi_exception.js +14 -0
- package/dest/node/benchmark/index.d.ts +1 -1
- package/dest/node/benchmark/index.js +1 -1
- package/dest/node/benchmark/timer.d.ts +1 -1
- package/dest/node/benchmark/timer.d.ts.map +1 -1
- package/dest/node/benchmark/timer.js +2 -1
- package/dest/node/bin/index.d.ts +3 -0
- package/dest/node/bin/index.d.ts.map +1 -0
- package/dest/node/bin/index.js +11 -0
- package/dest/node/cbind/generate.d.ts +1 -1
- package/dest/node/cbind/generate.js +93 -1
- package/dest/node/cbind/generated/api_types.d.ts +632 -400
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node/cbind/generated/api_types.js +773 -465
- package/dest/node/cbind/generated/async.d.ts +16 -11
- package/dest/node/cbind/generated/async.d.ts.map +1 -1
- package/dest/node/cbind/generated/async.js +305 -96
- package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node/cbind/generated/curve_constants.js +45 -0
- package/dest/node/cbind/generated/sync.d.ts +16 -11
- package/dest/node/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node/cbind/generated/sync.js +300 -96
- package/dest/node/cbind/schema_compiler.d.ts +1 -1
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node/cbind/schema_compiler.js +29 -8
- package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/node/crs/browser/cached_net_crs.js +6 -1
- package/dest/node/crs/browser/index.d.ts +1 -1
- package/dest/node/crs/index.d.ts +1 -1
- package/dest/node/crs/net_crs.d.ts +1 -16
- package/dest/node/crs/net_crs.d.ts.map +1 -1
- package/dest/node/crs/net_crs.js +6 -1
- package/dest/node/crs/node/index.d.ts +1 -1
- package/dest/node/crs/node/index.d.ts.map +1 -1
- package/dest/node/crs/node/index.js +11 -6
- package/dest/node/index.d.ts +6 -3
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +5 -2
- package/dest/node/proof/index.d.ts +1 -1
- package/dest/node/proof/index.js +1 -1
- package/dest/node/random/browser/index.d.ts +1 -1
- package/dest/node/random/browser/index.d.ts.map +1 -1
- package/dest/node/random/browser/index.js +1 -1
- package/dest/node/random/index.d.ts +1 -1
- package/dest/node/random/node/index.d.ts +1 -1
- package/dest/node/random/node/index.js +1 -1
- package/dest/node/retry/index.d.ts +1 -1
- package/dest/node/retry/index.js +1 -1
- package/dest/node-cjs/async_map/index.d.ts +1 -1
- package/dest/node-cjs/async_map/index.js +1 -1
- package/dest/node-cjs/barretenberg/backend.d.ts +30 -39
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +108 -103
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/blake2s.test.js +6 -6
- package/dest/node-cjs/barretenberg/index.d.ts +4 -6
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +25 -34
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/pedersen.test.js +9 -9
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/poseidon.bench.test.js +89 -87
- package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/poseidon.test.js +4 -4
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
- package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
- package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/testing/fields.js +51 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +7 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +3 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +3 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +5 -6
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +15 -7
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.js +2 -3
- package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.test.js +1 -1
- package/dest/node-cjs/bb_backends/browser/index.d.ts +1 -1
- package/dest/node-cjs/bb_backends/browser/index.js +1 -1
- package/dest/node-cjs/bb_backends/browser/platform.d.ts +4 -0
- package/dest/node-cjs/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/browser/platform.js +15 -0
- package/dest/node-cjs/bb_backends/index.d.ts +12 -7
- package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/index.js +6 -6
- package/dest/node-cjs/bb_backends/interface.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/index.js +17 -11
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/native_pipe.js +11 -10
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts +3 -3
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/native_shm.js +61 -39
- package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +51 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.js +236 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts +2 -2
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/native_socket.js +43 -31
- package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/platform.js +8 -3
- package/dest/node-cjs/bb_backends/wasm.d.ts +1 -1
- package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/wasm.js +5 -3
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
- package/dest/node-cjs/bbapi_exception.d.ts +7 -0
- package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
- package/dest/node-cjs/bbapi_exception.js +18 -0
- package/dest/node-cjs/benchmark/index.d.ts +1 -1
- package/dest/node-cjs/benchmark/index.js +2 -2
- package/dest/node-cjs/benchmark/timer.d.ts +1 -1
- package/dest/node-cjs/benchmark/timer.d.ts.map +1 -1
- package/dest/node-cjs/benchmark/timer.js +2 -1
- package/dest/node-cjs/bin/index.d.ts +3 -0
- package/dest/node-cjs/bin/index.d.ts.map +1 -0
- package/dest/node-cjs/bin/index.js +13 -0
- package/dest/node-cjs/cbind/generate.d.ts +1 -1
- package/dest/node-cjs/cbind/generate.js +93 -1
- package/dest/node-cjs/cbind/generated/api_types.d.ts +632 -400
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/api_types.js +843 -507
- package/dest/node-cjs/cbind/generated/async.d.ts +16 -11
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/async.js +304 -95
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts +16 -11
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/sync.js +299 -95
- package/dest/node-cjs/cbind/schema_compiler.d.ts +1 -1
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node-cjs/cbind/schema_compiler.js +29 -8
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/browser/cached_net_crs.js +6 -1
- package/dest/node-cjs/crs/browser/index.d.ts +1 -1
- package/dest/node-cjs/crs/browser/index.js +2 -2
- package/dest/node-cjs/crs/index.d.ts +1 -1
- package/dest/node-cjs/crs/index.js +2 -2
- package/dest/node-cjs/crs/net_crs.d.ts +1 -16
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/net_crs.js +6 -1
- package/dest/node-cjs/crs/node/index.d.ts +1 -1
- package/dest/node-cjs/crs/node/index.d.ts.map +1 -1
- package/dest/node-cjs/crs/node/index.js +11 -6
- package/dest/node-cjs/index.d.ts +6 -3
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +28 -11
- package/dest/node-cjs/proof/index.d.ts +1 -1
- package/dest/node-cjs/proof/index.js +1 -1
- package/dest/node-cjs/random/browser/index.d.ts +1 -1
- package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/random/browser/index.js +1 -1
- package/dest/node-cjs/random/index.d.ts +1 -1
- package/dest/node-cjs/random/node/index.d.ts +1 -1
- package/dest/node-cjs/random/node/index.js +1 -1
- package/dest/node-cjs/retry/index.d.ts +1 -1
- package/dest/node-cjs/retry/index.js +1 -1
- package/package.json +8 -6
- package/src/barretenberg/backend.ts +125 -126
- package/src/barretenberg/blake2s.test.ts +1 -1
- package/src/barretenberg/index.ts +24 -29
- package/src/barretenberg/pedersen.test.ts +1 -1
- package/src/barretenberg/poseidon.bench.test.ts +161 -157
- package/src/barretenberg/poseidon.test.ts +1 -1
- package/src/barretenberg/testing/fields.ts +63 -0
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +1 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
- package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +4 -4
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +37 -4
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +3 -2
- package/src/barretenberg_wasm/helpers/browser/index.ts +8 -1
- package/src/barretenberg_wasm/helpers/node/index.ts +13 -6
- package/src/barretenberg_wasm/index.ts +1 -2
- package/src/bb_backends/browser/platform.ts +11 -0
- package/src/bb_backends/index.ts +12 -6
- package/src/bb_backends/node/index.ts +23 -10
- package/src/bb_backends/node/native_shm.ts +59 -40
- package/src/bb_backends/node/native_shm_async.ts +261 -0
- package/src/bb_backends/node/native_socket.ts +31 -18
- package/src/bb_backends/node/platform.ts +6 -1
- package/src/bb_backends/wasm.ts +1 -2
- package/src/bbapi/exception_handling.test.ts +54 -0
- package/src/bbapi_exception.ts +13 -0
- package/src/bin/index.ts +14 -0
- package/src/cbind/generate.ts +99 -0
- package/src/cbind/generated/api_types.ts +1267 -783
- package/src/cbind/generated/async.ts +308 -95
- package/src/cbind/generated/curve_constants.ts +53 -0
- package/src/cbind/generated/sync.ts +303 -95
- package/src/cbind/schema_compiler.ts +25 -3
- package/src/crs/node/index.ts +4 -5
- package/src/index.ts +32 -1
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +0 -15
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
- package/dest/browser/bb_backends/sync_to_async_adapter.js +0 -20
- package/dest/browser/bigint-array/index.d.ts +0 -17
- package/dest/browser/bigint-array/index.d.ts.map +0 -1
- package/dest/browser/bigint-array/index.js +0 -37
- package/dest/browser/log/browser/index.d.ts +0 -6
- package/dest/browser/log/browser/index.d.ts.map +0 -1
- package/dest/browser/log/browser/index.js +0 -28
- package/dest/browser/log/index.d.ts +0 -2
- package/dest/browser/log/index.d.ts.map +0 -1
- package/dest/browser/log/index.js +0 -2
- package/dest/browser/log/types.d.ts +0 -6
- package/dest/browser/log/types.d.ts.map +0 -1
- package/dest/browser/log/types.js +0 -2
- package/dest/browser/serialize/buffer_reader.d.ts +0 -28
- package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/browser/serialize/buffer_reader.js +0 -66
- package/dest/browser/serialize/index.d.ts +0 -3
- package/dest/browser/serialize/index.d.ts.map +0 -1
- package/dest/browser/serialize/index.js +0 -3
- package/dest/browser/serialize/serialize.d.ts +0 -18
- package/dest/browser/serialize/serialize.d.ts.map +0 -1
- package/dest/browser/serialize/serialize.js +0 -72
- package/dest/browser/types/fields.d.ts +0 -43
- package/dest/browser/types/fields.d.ts.map +0 -1
- package/dest/browser/types/fields.js +0 -102
- package/dest/browser/types/index.d.ts +0 -3
- package/dest/browser/types/index.d.ts.map +0 -1
- package/dest/browser/types/index.js +0 -3
- package/dest/browser/types/point.d.ts +0 -16
- package/dest/browser/types/point.d.ts.map +0 -1
- package/dest/browser/types/point.js +0 -31
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts +0 -15
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
- package/dest/node/bb_backends/sync_to_async_adapter.js +0 -20
- package/dest/node/bigint-array/index.d.ts +0 -17
- package/dest/node/bigint-array/index.d.ts.map +0 -1
- package/dest/node/bigint-array/index.js +0 -37
- package/dest/node/log/browser/index.d.ts +0 -6
- package/dest/node/log/browser/index.d.ts.map +0 -1
- package/dest/node/log/browser/index.js +0 -28
- package/dest/node/log/index.d.ts +0 -2
- package/dest/node/log/index.d.ts.map +0 -1
- package/dest/node/log/index.js +0 -2
- package/dest/node/log/node/index.d.ts +0 -6
- package/dest/node/log/node/index.d.ts.map +0 -1
- package/dest/node/log/node/index.js +0 -40
- package/dest/node/log/types.d.ts +0 -6
- package/dest/node/log/types.d.ts.map +0 -1
- package/dest/node/log/types.js +0 -2
- package/dest/node/serialize/buffer_reader.d.ts +0 -28
- package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node/serialize/buffer_reader.js +0 -66
- package/dest/node/serialize/index.d.ts +0 -3
- package/dest/node/serialize/index.d.ts.map +0 -1
- package/dest/node/serialize/index.js +0 -3
- package/dest/node/serialize/serialize.d.ts +0 -18
- package/dest/node/serialize/serialize.d.ts.map +0 -1
- package/dest/node/serialize/serialize.js +0 -72
- package/dest/node/types/fields.d.ts +0 -43
- package/dest/node/types/fields.d.ts.map +0 -1
- package/dest/node/types/fields.js +0 -102
- package/dest/node/types/index.d.ts +0 -3
- package/dest/node/types/index.d.ts.map +0 -1
- package/dest/node/types/index.js +0 -3
- package/dest/node/types/point.d.ts +0 -16
- package/dest/node/types/point.d.ts.map +0 -1
- package/dest/node/types/point.js +0 -31
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +0 -15
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +0 -24
- package/dest/node-cjs/bigint-array/index.d.ts +0 -17
- package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
- package/dest/node-cjs/bigint-array/index.js +0 -43
- package/dest/node-cjs/log/browser/index.d.ts +0 -6
- package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
- package/dest/node-cjs/log/browser/index.js +0 -30
- package/dest/node-cjs/log/index.d.ts +0 -2
- package/dest/node-cjs/log/index.d.ts.map +0 -1
- package/dest/node-cjs/log/index.js +0 -8
- package/dest/node-cjs/log/node/index.d.ts +0 -6
- package/dest/node-cjs/log/node/index.d.ts.map +0 -1
- package/dest/node-cjs/log/node/index.js +0 -42
- package/dest/node-cjs/log/types.d.ts +0 -6
- package/dest/node-cjs/log/types.d.ts.map +0 -1
- package/dest/node-cjs/log/types.js +0 -3
- package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
- package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node-cjs/serialize/buffer_reader.js +0 -70
- package/dest/node-cjs/serialize/index.d.ts +0 -3
- package/dest/node-cjs/serialize/index.d.ts.map +0 -1
- package/dest/node-cjs/serialize/index.js +0 -6
- package/dest/node-cjs/serialize/serialize.d.ts +0 -18
- package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
- package/dest/node-cjs/serialize/serialize.js +0 -82
- package/dest/node-cjs/types/fields.d.ts +0 -43
- package/dest/node-cjs/types/fields.d.ts.map +0 -1
- package/dest/node-cjs/types/fields.js +0 -107
- package/dest/node-cjs/types/index.d.ts +0 -3
- package/dest/node-cjs/types/index.d.ts.map +0 -1
- package/dest/node-cjs/types/index.js +0 -6
- package/dest/node-cjs/types/point.d.ts +0 -16
- package/dest/node-cjs/types/point.d.ts.map +0 -1
- package/dest/node-cjs/types/point.js +0 -35
- package/src/bb_backends/sync_to_async_adapter.ts +0 -21
- package/src/log/browser/index.ts +0 -35
- package/src/log/index.ts +0 -1
- package/src/log/node/index.ts +0 -52
- package/src/log/types.ts +0 -6
- package/src/serialize/buffer_reader.ts +0 -85
- package/src/serialize/index.ts +0 -2
- package/src/serialize/serialize.ts +0 -75
- package/src/types/fields.ts +0 -126
- package/src/types/index.ts +0 -2
- package/src/types/point.ts +0 -38
- /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
|
@@ -10,8 +10,8 @@ import { type BarretenbergWasmMain } from './index.js';
|
|
|
10
10
|
*/
|
|
11
11
|
export class HeapAllocator {
|
|
12
12
|
private allocs: number[] = [];
|
|
13
|
-
private inScratchPtr = 0;
|
|
14
|
-
private outScratchPtr = 1024;
|
|
13
|
+
private inScratchPtr = 0; // Next input starts here, grows UP
|
|
14
|
+
private outScratchPtr = 1024; // Next output ends here, grows DOWN
|
|
15
15
|
|
|
16
16
|
constructor(private wasm: BarretenbergWasmMain) {}
|
|
17
17
|
|
|
@@ -22,7 +22,7 @@ export class HeapAllocator {
|
|
|
22
22
|
// Check if there's room in scratch space (inputs grow up, outputs grow down)
|
|
23
23
|
if (this.inScratchPtr + size <= this.outScratchPtr) {
|
|
24
24
|
const ptr = this.inScratchPtr;
|
|
25
|
-
this.inScratchPtr += size;
|
|
25
|
+
this.inScratchPtr += size; // Grow UP
|
|
26
26
|
this.wasm.writeMemory(ptr, bufOrNum);
|
|
27
27
|
return ptr;
|
|
28
28
|
} else {
|
|
@@ -46,7 +46,7 @@ export class HeapAllocator {
|
|
|
46
46
|
|
|
47
47
|
// Check if there's room in scratch space (inputs grow up, outputs grow down)
|
|
48
48
|
if (this.inScratchPtr + size <= this.outScratchPtr) {
|
|
49
|
-
this.outScratchPtr -= size;
|
|
49
|
+
this.outScratchPtr -= size; // Grow DOWN
|
|
50
50
|
return this.outScratchPtr;
|
|
51
51
|
} else {
|
|
52
52
|
// Fall back to heap allocation
|
|
@@ -5,7 +5,6 @@ import { createThreadWorker } from '../barretenberg_wasm_thread/factory/node/ind
|
|
|
5
5
|
import { type BarretenbergWasmThreadWorker } from '../barretenberg_wasm_thread/index.js';
|
|
6
6
|
import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
|
|
7
7
|
import { HeapAllocator } from './heap_allocator.js';
|
|
8
|
-
import { createDebugLogger } from '../../log/index.js';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* This is the "main thread" implementation of BarretenbergWasm.
|
|
@@ -18,6 +17,7 @@ export class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
|
18
17
|
private remoteWasms: BarretenbergWasmThreadWorker[] = [];
|
|
19
18
|
private nextWorker = 0;
|
|
20
19
|
private nextThreadId = 1;
|
|
20
|
+
private useCustomLogger = false;
|
|
21
21
|
|
|
22
22
|
// Pre-allocated scratch buffers for msgpack I/O to avoid malloc/free overhead
|
|
23
23
|
private msgpackInputScratch: number = 0; // 8MB input buffer
|
|
@@ -34,11 +34,13 @@ export class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
|
34
34
|
public async init(
|
|
35
35
|
module: WebAssembly.Module,
|
|
36
36
|
threads = Math.min(getNumCpu(), BarretenbergWasmMain.MAX_THREADS),
|
|
37
|
-
logger
|
|
37
|
+
logger?: (msg: string) => void,
|
|
38
38
|
initial = 33,
|
|
39
39
|
maximum = this.getDefaultMaximumMemoryPages(),
|
|
40
40
|
) {
|
|
41
|
-
|
|
41
|
+
// Track whether a custom logger was provided so workers know whether to postMessage logs
|
|
42
|
+
this.useCustomLogger = logger !== undefined;
|
|
43
|
+
this.logger = logger ?? (() => {});
|
|
42
44
|
|
|
43
45
|
const initialMb = (initial * 2 ** 16) / (1024 * 1024);
|
|
44
46
|
const maxMb = (maximum * 2 ** 16) / (1024 * 1024);
|
|
@@ -71,8 +73,14 @@ export class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
|
71
73
|
if (threads > 1) {
|
|
72
74
|
this.logger(`Creating ${threads} worker threads`);
|
|
73
75
|
this.workers = await Promise.all(Array.from({ length: threads - 1 }).map(createThreadWorker));
|
|
76
|
+
|
|
77
|
+
// Set up log message forwarding from workers to our logger (only if custom logger provided)
|
|
78
|
+
if (this.useCustomLogger) {
|
|
79
|
+
this.workers.forEach(worker => this.setupWorkerLogForwarding(worker));
|
|
80
|
+
}
|
|
81
|
+
|
|
74
82
|
this.remoteWasms = await Promise.all(this.workers.map(getRemoteBarretenbergWasm<BarretenbergWasmThreadWorker>));
|
|
75
|
-
await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
|
|
83
|
+
await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory, this.useCustomLogger)));
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
86
|
|
|
@@ -85,6 +93,31 @@ export class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
|
85
93
|
return 2 ** 16;
|
|
86
94
|
}
|
|
87
95
|
|
|
96
|
+
/**
|
|
97
|
+
* Set up forwarding of log messages from worker threads to our logger.
|
|
98
|
+
* Workers post messages with { type: 'log', msg: string } which we intercept here.
|
|
99
|
+
*/
|
|
100
|
+
private setupWorkerLogForwarding(worker: Worker) {
|
|
101
|
+
const handler = (data: unknown) => {
|
|
102
|
+
if (data && typeof data === 'object' && 'type' in data && data.type === 'log' && 'msg' in data) {
|
|
103
|
+
this.logger(data.msg as string);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// Node Workers use 'on' method, browser Workers use 'addEventListener'
|
|
108
|
+
// The 'worker' variable is typed as Node's Worker, but at runtime in browser
|
|
109
|
+
// it will be a browser Worker (due to browser_postprocess.sh import rewriting)
|
|
110
|
+
if ('on' in worker && typeof worker.on === 'function') {
|
|
111
|
+
// Node.js worker_threads Worker
|
|
112
|
+
worker.on('message', handler);
|
|
113
|
+
} else if ('addEventListener' in worker) {
|
|
114
|
+
// Browser Web Worker
|
|
115
|
+
(worker as unknown as globalThis.Worker).addEventListener('message', (event: MessageEvent) => {
|
|
116
|
+
handler(event.data);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
88
121
|
/**
|
|
89
122
|
* Called on main thread. Signals child threads to gracefully exit.
|
|
90
123
|
*/
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { logOptions } from '../../../../log/index.js';
|
|
2
1
|
import { readinessListener } from '../../../helpers/browser/index.js';
|
|
3
2
|
|
|
4
3
|
export async function createThreadWorker() {
|
|
5
4
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
5
|
// @ts-ignore
|
|
7
6
|
const worker = new Worker(new URL('./thread.worker.js', import.meta.url), { type: 'module' });
|
|
8
|
-
worker.postMessage({ log: logOptions });
|
|
9
7
|
await new Promise<void>(resolve => readinessListener(worker, resolve));
|
|
10
8
|
return worker;
|
|
11
9
|
}
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { expose } from 'comlink';
|
|
2
2
|
import { BarretenbergWasmThread } from '../../index.js';
|
|
3
3
|
import { Ready } from '../../../helpers/browser/index.js';
|
|
4
|
-
import { initLogger } from '../../../../log/browser/index.js';
|
|
5
|
-
|
|
6
|
-
addEventListener('message', e => {
|
|
7
|
-
if (e.data.log) {
|
|
8
|
-
initLogger(e.data.log);
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
4
|
|
|
12
5
|
expose(new BarretenbergWasmThread());
|
|
13
6
|
postMessage(Ready);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Worker } from 'worker_threads';
|
|
2
2
|
import { dirname } from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
|
-
import { logOptions } from '../../../../log/index.js';
|
|
5
4
|
|
|
6
5
|
function getCurrentDir() {
|
|
7
6
|
if (typeof __dirname !== 'undefined') {
|
|
@@ -16,6 +15,5 @@ function getCurrentDir() {
|
|
|
16
15
|
export function createThreadWorker() {
|
|
17
16
|
const __dirname = getCurrentDir();
|
|
18
17
|
const worker = new Worker(__dirname + `/thread.worker.js`);
|
|
19
|
-
worker.postMessage({ log: logOptions });
|
|
20
18
|
return Promise.resolve(worker);
|
|
21
19
|
}
|
|
@@ -2,7 +2,6 @@ import { parentPort } from 'worker_threads';
|
|
|
2
2
|
import { expose } from 'comlink';
|
|
3
3
|
import { BarretenbergWasmThread } from '../../index.js';
|
|
4
4
|
import { nodeEndpoint } from '../../../helpers/node/node_endpoint.js';
|
|
5
|
-
import { initLogger } from '../../../../log/node/index.js';
|
|
6
5
|
|
|
7
6
|
if (!parentPort) {
|
|
8
7
|
throw new Error('No parentPort');
|
|
@@ -10,10 +9,4 @@ if (!parentPort) {
|
|
|
10
9
|
|
|
11
10
|
const endpoint = nodeEndpoint(parentPort);
|
|
12
11
|
|
|
13
|
-
endpoint.addEventListener('message', (e: any) => {
|
|
14
|
-
if (e.data.log) {
|
|
15
|
-
initLogger(e.data.log);
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
|
|
19
12
|
expose(new BarretenbergWasmThread(), endpoint);
|
|
@@ -5,9 +5,10 @@ import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
|
|
|
5
5
|
export class BarretenbergWasmThread extends BarretenbergWasmBase {
|
|
6
6
|
/**
|
|
7
7
|
* Init as worker thread.
|
|
8
|
+
* @param useCustomLogger - If true, logs will be posted back to main thread for custom logger routing
|
|
8
9
|
*/
|
|
9
|
-
public async initThread(module: WebAssembly.Module, memory: WebAssembly.Memory) {
|
|
10
|
-
this.logger = threadLogger() || this.logger;
|
|
10
|
+
public async initThread(module: WebAssembly.Module, memory: WebAssembly.Memory, useCustomLogger = false) {
|
|
11
|
+
this.logger = threadLogger(useCustomLogger) || this.logger;
|
|
11
12
|
this.memory = memory;
|
|
12
13
|
this.instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
|
|
13
14
|
}
|
|
@@ -13,7 +13,14 @@ export function getNumCpu() {
|
|
|
13
13
|
return navigator.hardwareConcurrency;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export function threadLogger(): ((msg: string) => void) | undefined {
|
|
16
|
+
export function threadLogger(useCustomLogger: boolean): ((msg: string) => void) | undefined {
|
|
17
|
+
if (useCustomLogger) {
|
|
18
|
+
// Post log messages back to main thread for routing through user-provided logger
|
|
19
|
+
return (msg: string) => {
|
|
20
|
+
postMessage({ type: 'log', msg });
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
// Use console.log directly when no custom logger is provided
|
|
17
24
|
return console.log;
|
|
18
25
|
}
|
|
19
26
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Worker } from 'worker_threads';
|
|
1
|
+
import { Worker, parentPort } from 'worker_threads';
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import { wrap } from 'comlink';
|
|
4
4
|
import { nodeEndpoint } from './node_endpoint.js';
|
|
@@ -25,12 +25,19 @@ export function getNumCpu() {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* To work around this in node, threads will by default write directly to stdout.
|
|
28
|
+
* Returns a logger function for worker threads.
|
|
29
|
+
* When a custom logger is provided, posts messages back to the main thread.
|
|
30
|
+
* Otherwise, writes directly to stdout.
|
|
32
31
|
*/
|
|
33
|
-
export function threadLogger(): ((msg: string) => void) | undefined {
|
|
32
|
+
export function threadLogger(useCustomLogger: boolean): ((msg: string) => void) | undefined {
|
|
33
|
+
if (useCustomLogger) {
|
|
34
|
+
return (msg: string) => {
|
|
35
|
+
if (parentPort) {
|
|
36
|
+
parentPort.postMessage({ type: 'log', msg });
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
// Write directly to stdout when no custom logger is provided
|
|
34
41
|
return (msg: string) => {
|
|
35
42
|
writeSync(1, msg + '\n');
|
|
36
43
|
};
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { getSharedMemoryAvailable, getAvailableThreads } from './helpers/node/index.js';
|
|
2
2
|
import { fetchCode } from './fetch_code/index.js';
|
|
3
|
-
import { createDebugLogger } from '../log/index.js';
|
|
4
3
|
|
|
5
4
|
export async function fetchModuleAndThreads(
|
|
6
5
|
desiredThreads = 32,
|
|
7
6
|
wasmPath?: string,
|
|
8
|
-
logger: (msg: string) => void =
|
|
7
|
+
logger: (msg: string) => void = () => {},
|
|
9
8
|
) {
|
|
10
9
|
const shared = getSharedMemoryAvailable();
|
|
11
10
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function findPackageRoot(): string | null {
|
|
2
|
+
throw new Error('Not implemented in browser environment.');
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function findBbBinary(customPath?: string): string | null {
|
|
6
|
+
throw new Error('Not implemented in browser environment.');
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function findNapiBinary(customPath?: string): string | null {
|
|
10
|
+
throw new Error('Not implemented in browser environment.');
|
|
11
|
+
}
|
package/src/bb_backends/index.ts
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export enum BackendType {
|
|
5
5
|
/** WASM direct execution (no worker) */
|
|
6
|
-
Wasm = '
|
|
6
|
+
Wasm = 'Wasm',
|
|
7
7
|
/** WASM with worker threads */
|
|
8
|
-
WasmWorker = '
|
|
8
|
+
WasmWorker = 'WasmWorker',
|
|
9
9
|
/** Native via Unix domain socket (async only) */
|
|
10
|
-
NativeUnixSocket = '
|
|
11
|
-
/** Native via shared memory
|
|
12
|
-
NativeSharedMemory = '
|
|
10
|
+
NativeUnixSocket = 'NativeUnixSocket',
|
|
11
|
+
/** Native via shared memory */
|
|
12
|
+
NativeSharedMemory = 'NativeSharedMemory',
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export type BackendOptions = {
|
|
@@ -28,7 +28,13 @@ export type BackendOptions = {
|
|
|
28
28
|
/** @description Custom path to bb binary for native backend (overrides automatic detection) */
|
|
29
29
|
bbPath?: string;
|
|
30
30
|
|
|
31
|
-
/** @description
|
|
31
|
+
/** @description Custom path to bb NAPI module for native backend (overrides automatic detection) */
|
|
32
|
+
napiPath?: string;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @description Logging function
|
|
36
|
+
* Warning: Attaching a logger can prevent nodejs from exiting without explicitly destroying the backend.
|
|
37
|
+
*/
|
|
32
38
|
logger?: (msg: string) => void;
|
|
33
39
|
|
|
34
40
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BarretenbergNativeSocketAsyncBackend } from './native_socket.js';
|
|
2
2
|
import { BarretenbergWasmSyncBackend, BarretenbergWasmAsyncBackend } from '../wasm.js';
|
|
3
3
|
import { BarretenbergNativeShmSyncBackend } from './native_shm.js';
|
|
4
|
-
import {
|
|
4
|
+
import { BarretenbergNativeShmAsyncBackend } from './native_shm_async.js';
|
|
5
5
|
import { findBbBinary, findNapiBinary } from './platform.js';
|
|
6
6
|
import { Barretenberg, BarretenbergSync } from '../../barretenberg/index.js';
|
|
7
7
|
import { BackendOptions, BackendType } from '../index.js';
|
|
@@ -14,6 +14,11 @@ export async function createAsyncBackend(
|
|
|
14
14
|
options: BackendOptions,
|
|
15
15
|
logger: (msg: string) => void,
|
|
16
16
|
): Promise<Barretenberg> {
|
|
17
|
+
options = {
|
|
18
|
+
...options,
|
|
19
|
+
wasmPath: options.wasmPath ?? process.env.BB_WASM_PATH,
|
|
20
|
+
};
|
|
21
|
+
|
|
17
22
|
switch (type) {
|
|
18
23
|
case BackendType.NativeUnixSocket: {
|
|
19
24
|
const bbPath = findBbBinary(options.bbPath);
|
|
@@ -21,7 +26,7 @@ export async function createAsyncBackend(
|
|
|
21
26
|
throw new Error('Native backend requires bb binary.');
|
|
22
27
|
}
|
|
23
28
|
logger(`Using native Unix socket backend: ${bbPath}`);
|
|
24
|
-
const socket = new BarretenbergNativeSocketAsyncBackend(bbPath, options.threads);
|
|
29
|
+
const socket = new BarretenbergNativeSocketAsyncBackend(bbPath, options.threads, options.logger);
|
|
25
30
|
return new Barretenberg(socket, options);
|
|
26
31
|
}
|
|
27
32
|
|
|
@@ -30,14 +35,17 @@ export async function createAsyncBackend(
|
|
|
30
35
|
if (!bbPath) {
|
|
31
36
|
throw new Error('Native backend requires bb binary.');
|
|
32
37
|
}
|
|
33
|
-
const napiPath = findNapiBinary();
|
|
38
|
+
const napiPath = findNapiBinary(options.napiPath);
|
|
34
39
|
if (!napiPath) {
|
|
35
|
-
throw new Error('Native
|
|
40
|
+
throw new Error('Native async backend requires napi client stub.');
|
|
36
41
|
}
|
|
37
|
-
logger(`Using native shared memory backend
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
logger(`Using native shared memory async backend: ${bbPath}`);
|
|
43
|
+
const asyncBackend = await BarretenbergNativeShmAsyncBackend.new(
|
|
44
|
+
bbPath,
|
|
45
|
+
napiPath,
|
|
46
|
+
options.threads,
|
|
47
|
+
options.logger,
|
|
48
|
+
);
|
|
41
49
|
return new Barretenberg(asyncBackend, options);
|
|
42
50
|
}
|
|
43
51
|
|
|
@@ -68,18 +76,23 @@ export async function createSyncBackend(
|
|
|
68
76
|
options: BackendOptions,
|
|
69
77
|
logger: (msg: string) => void,
|
|
70
78
|
): Promise<BarretenbergSync> {
|
|
79
|
+
options = {
|
|
80
|
+
...options,
|
|
81
|
+
wasmPath: options.wasmPath ?? process.env.BB_WASM_PATH,
|
|
82
|
+
};
|
|
83
|
+
|
|
71
84
|
switch (type) {
|
|
72
85
|
case BackendType.NativeSharedMemory: {
|
|
73
86
|
const bbPath = findBbBinary(options.bbPath);
|
|
74
87
|
if (!bbPath) {
|
|
75
88
|
throw new Error('Native backend requires bb binary.');
|
|
76
89
|
}
|
|
77
|
-
const napiPath = findNapiBinary();
|
|
90
|
+
const napiPath = findNapiBinary(options.napiPath);
|
|
78
91
|
if (!napiPath) {
|
|
79
92
|
throw new Error('Native sync backend requires napi client stub.');
|
|
80
93
|
}
|
|
81
94
|
logger(`Using native shared memory backend: ${bbPath}`);
|
|
82
|
-
const shm = await BarretenbergNativeShmSyncBackend.new(bbPath, options.threads, options.
|
|
95
|
+
const shm = await BarretenbergNativeShmSyncBackend.new(bbPath, napiPath, options.threads, options.logger);
|
|
83
96
|
return new BarretenbergSync(shm);
|
|
84
97
|
}
|
|
85
98
|
|
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
import { createRequire } from 'module';
|
|
2
2
|
import { spawn, ChildProcess } from 'child_process';
|
|
3
|
+
import { openSync, closeSync } from 'fs';
|
|
3
4
|
import { IMsgpackBackendSync } from '../interface.js';
|
|
4
5
|
import { findNapiBinary, findPackageRoot } from './platform.js';
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
// The addon is built to the nodejs_module directory
|
|
8
|
-
const addonPath = findNapiBinary();
|
|
9
|
-
// Try loading, but don't throw if it doesn't exist (will be caught in constructor)
|
|
10
|
-
let addon: any = null;
|
|
11
|
-
try {
|
|
12
|
-
if (addonPath) {
|
|
13
|
-
const require = createRequire(findPackageRoot()!);
|
|
14
|
-
addon = require(addonPath);
|
|
15
|
-
}
|
|
16
|
-
} catch (err) {
|
|
17
|
-
// Addon not built yet or not available
|
|
18
|
-
addon = null;
|
|
19
|
-
}
|
|
7
|
+
let instanceCounter = 0;
|
|
20
8
|
|
|
21
9
|
/**
|
|
22
10
|
* Synchronous shared memory backend that communicates with bb binary via shared memory.
|
|
@@ -32,49 +20,66 @@ try {
|
|
|
32
20
|
export class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
|
|
33
21
|
private process: ChildProcess;
|
|
34
22
|
private client: any; // NAPI MsgpackClient instance
|
|
23
|
+
private logFd?: number; // File descriptor for logs
|
|
35
24
|
|
|
36
|
-
private constructor(process: ChildProcess, client: any) {
|
|
25
|
+
private constructor(process: ChildProcess, client: any, logFd?: number) {
|
|
37
26
|
this.process = process;
|
|
38
27
|
this.client = client;
|
|
28
|
+
this.logFd = logFd;
|
|
39
29
|
}
|
|
40
30
|
|
|
41
31
|
/**
|
|
42
32
|
* Create and initialize a shared memory backend.
|
|
43
33
|
* @param bbBinaryPath Path to bb binary
|
|
44
34
|
* @param threads Optional number of threads
|
|
45
|
-
* @param maxClients Optional maximum concurrent clients (default: 1)
|
|
46
35
|
*/
|
|
47
36
|
static async new(
|
|
48
37
|
bbBinaryPath: string,
|
|
38
|
+
napiPath: string,
|
|
49
39
|
threads?: number,
|
|
50
|
-
|
|
40
|
+
logger?: (msg: string) => void,
|
|
51
41
|
): Promise<BarretenbergNativeShmSyncBackend> {
|
|
52
|
-
|
|
53
|
-
|
|
42
|
+
// Import the NAPI module
|
|
43
|
+
// The addon is built to the nodejs_module directory
|
|
44
|
+
const addonPath = findNapiBinary(napiPath);
|
|
45
|
+
// Try loading
|
|
46
|
+
let addon: any = null;
|
|
47
|
+
try {
|
|
48
|
+
const require = createRequire(findPackageRoot()!);
|
|
49
|
+
addon = require(addonPath!);
|
|
50
|
+
} catch (err) {
|
|
51
|
+
// Addon not built yet or not available
|
|
52
|
+
throw new Error('Shared memory sync NAPI not available.');
|
|
54
53
|
}
|
|
55
54
|
|
|
56
55
|
// Create a unique shared memory name
|
|
57
|
-
const shmName = `bb-${process.pid}-${
|
|
58
|
-
|
|
59
|
-
//
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
56
|
+
const shmName = `bb-sync-${process.pid}-${instanceCounter++}`;
|
|
57
|
+
|
|
58
|
+
// If threads not set use 1 thread. We're not expected to do long lived work on sync backends.
|
|
59
|
+
const hwc = threads ? threads.toString() : '1';
|
|
60
|
+
const env = { ...process.env, HARDWARE_CONCURRENCY: hwc };
|
|
61
|
+
|
|
62
|
+
// Set up file logging if logger is provided.
|
|
63
|
+
// Direct file redirection bypasses Node event loop - logs are written even if process hangs.
|
|
64
|
+
let logFd: number | undefined;
|
|
65
|
+
let logPath: string | undefined;
|
|
66
|
+
if (logger) {
|
|
67
|
+
logPath = `/tmp/${shmName}.log`;
|
|
68
|
+
logFd = openSync(logPath, 'w');
|
|
69
|
+
logger(`BB process logs redirected to: ${logPath}`);
|
|
70
|
+
}
|
|
64
71
|
|
|
65
|
-
// Spawn bb process with shared memory mode
|
|
66
|
-
const args = [
|
|
67
|
-
const bbProcess = spawn(
|
|
68
|
-
stdio: ['ignore', 'ignore', 'ignore'],
|
|
72
|
+
// Spawn bb process with shared memory mode (SPSC-only, no max-clients needed)
|
|
73
|
+
const args = ['msgpack', 'run', '--input', `${shmName}.shm`, '--request-ring-size', `${1024 * 1024 * 4}`];
|
|
74
|
+
const bbProcess = spawn(bbBinaryPath, args, {
|
|
75
|
+
stdio: ['ignore', logFd ?? 'ignore', logFd ?? 'ignore'],
|
|
69
76
|
env,
|
|
70
77
|
});
|
|
71
|
-
// Disconnect from event loop so process can exit. The kill wrapper will reap bb once parent (node) dies.
|
|
72
|
-
bbProcess.unref();
|
|
73
78
|
|
|
74
|
-
//
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
|
|
79
|
+
// Disconnect from event loop so process can exit without waiting for bb
|
|
80
|
+
// The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
|
|
81
|
+
// so it will automatically exit when Node.js exits
|
|
82
|
+
bbProcess.unref();
|
|
78
83
|
|
|
79
84
|
// Track if process has exited
|
|
80
85
|
let processExited = false;
|
|
@@ -114,8 +119,8 @@ export class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
|
|
|
114
119
|
}
|
|
115
120
|
|
|
116
121
|
try {
|
|
117
|
-
// Create NAPI client
|
|
118
|
-
client = new addon.MsgpackClient(shmName
|
|
122
|
+
// Create NAPI client (SPSC-only, no max_clients needed)
|
|
123
|
+
client = new addon.MsgpackClient(shmName);
|
|
119
124
|
break; // Success!
|
|
120
125
|
} catch (err: any) {
|
|
121
126
|
// Connection failed, will retry
|
|
@@ -133,12 +138,19 @@ export class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
|
|
|
133
138
|
throw new Error('Failed to create client connection');
|
|
134
139
|
}
|
|
135
140
|
|
|
136
|
-
return new BarretenbergNativeShmSyncBackend(bbProcess, client);
|
|
141
|
+
return new BarretenbergNativeShmSyncBackend(bbProcess, client, logFd);
|
|
137
142
|
} finally {
|
|
138
|
-
// If we failed to connect, ensure the process is killed
|
|
143
|
+
// If we failed to connect, ensure the process is killed and log file closed
|
|
139
144
|
// kill() returns false if process already exited, but doesn't throw
|
|
140
145
|
if (!client) {
|
|
141
146
|
bbProcess.kill('SIGKILL');
|
|
147
|
+
if (logFd !== undefined) {
|
|
148
|
+
try {
|
|
149
|
+
closeSync(logFd);
|
|
150
|
+
} catch (e) {
|
|
151
|
+
// Ignore errors during cleanup
|
|
152
|
+
}
|
|
153
|
+
}
|
|
142
154
|
}
|
|
143
155
|
}
|
|
144
156
|
}
|
|
@@ -160,6 +172,13 @@ export class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
|
|
|
160
172
|
// Ignore errors during cleanup
|
|
161
173
|
}
|
|
162
174
|
}
|
|
175
|
+
if (this.logFd !== undefined) {
|
|
176
|
+
try {
|
|
177
|
+
closeSync(this.logFd);
|
|
178
|
+
} catch (e) {
|
|
179
|
+
// Ignore errors during cleanup
|
|
180
|
+
}
|
|
181
|
+
}
|
|
163
182
|
}
|
|
164
183
|
|
|
165
184
|
destroy(): void {
|