Skip to content

SIZE_CONSTANTS

const SIZE_CONSTANTS: object;

Defined in: packages/synapse-sdk/src/utils/constants.ts:138

Data size constants

readonly DEFAULT_UPLOAD_BATCH_SIZE: 32 = 32;

Default number of uploads to batch together in a single addPieces transaction This balances gas efficiency with reasonable transaction sizes

readonly GiB: bigint;

Bytes in 1 GiB

readonly KiB: 1024n = 1024n;

Bytes in 1 KiB

readonly MAX_UPLOAD_SIZE: 1065353216 = CORE_MAX_UPLOAD_SIZE;

Maximum upload size supported by Curio PDP servers: 1 GiB adjusted for fr32 expansion.

1 GiB * (127/128) = 1,065,353,216 bytes

Fr32 encoding adds 2 bits of padding per 254 bits of data, resulting in 128 bytes of padded data for every 127 bytes of raw data.

Note: While it’s technically possible to upload pieces this large as Uint8Array (even in browsers), streaming via AsyncIterable is strongly recommended for non-trivial sizes. In-memory operations with large byte arrays can:

  • Cause memory pressure and garbage collection issues
  • Block the JavaScript event loop during allocation/copying
  • Trigger browser tab slowdowns or “unresponsive script” warnings

For optimal performance and resource utilization, prefer streaming for pieces larger than a few megabytes, especially in browser environments.

Imported from @filoz/synapse-core/piece

readonly MiB: bigint;

Bytes in 1 MiB

readonly MIN_UPLOAD_SIZE: 127 = 127;

Minimum upload size (127 bytes) PieceCIDv2 calculation requires at least 127 bytes payload

readonly PiB: bigint;

Bytes in 1 PiB

readonly TiB: bigint;

Bytes in 1 TiB