SIZE_CONSTANTS
constSIZE_CONSTANTS:object
Defined in: packages/synapse-sdk/src/utils/constants.ts:145
Data size constants
Type Declaration
Section titled “Type Declaration”DEFAULT_UPLOAD_BATCH_SIZE
Section titled “DEFAULT_UPLOAD_BATCH_SIZE”
readonlyDEFAULT_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
readonlyGiB:bigint
Bytes in 1 GiB
readonlyKiB:1024n=1024n
Bytes in 1 KiB
MAX_UPLOAD_SIZE
Section titled “MAX_UPLOAD_SIZE”
readonlyMAX_UPLOAD_SIZE:1065353216=CORE_SIZE_CONSTANTS.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
readonlyMiB:bigint
Bytes in 1 MiB
MIN_UPLOAD_SIZE
Section titled “MIN_UPLOAD_SIZE”
readonlyMIN_UPLOAD_SIZE:127=127
Minimum upload size (127 bytes) PieceCIDv2 calculation requires at least 127 bytes payload
readonlyPiB:bigint
Bytes in 1 PiB
readonlyTiB:bigint
Bytes in 1 TiB