Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 7 additions & 16 deletions src/os/persistence/PersistenceLayer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,19 @@ export class PersistenceLayer {
const payload = JSON.stringify(data);
const payloadBuf = Buffer.from(payload, 'utf8');

// Bolt Optimization: Allocate unsafe buffer for exact combined size to avoid Buffer.concat and intermediate payload allocations
const outBuf = Buffer.allocUnsafe(38 + payloadBuf.length);

// Copy pre-allocated header and payload
outBuf.set(HEADER_BUF, 0);
outBuf.set(payloadBuf, 38);

// Compute and write HMAC signature directly
const hmac = crypto.createHmac('sha256',. key);
// Compute HMAC signature over payload buffer
const hmac = crypto.createHmac('sha256', key);
hmac.update(payloadBuf);
const signature = hmac.digest();
outBuf.set(signature, 6);

const payloadByteLength = Buffer.byteLength(payload, 'utf8');
const out = Buffer.allocUnsafe(HEADER_LENGTH + SIGNATURE_LENGTH + payloadByteLength);
const payloadByteLength = payloadBuf.length;
// Use Buffer.alloc to avoid uninitialized memory hazards
const out = Buffer.alloc(HEADER_LENGTH + SIGNATURE_LENGTH + payloadByteLength);

// Zero-copy set of pre-allocated header
// Copy header, signature, and payload
out.set(HEADER_MAGIC, 0);
// Zero-copy set of hmac signature
out.set(signature, HEADER_LENGTH);
// Direct UTF-8 write of the payload to avoid intermediate Buffer allocation
out.write(payload, HEADER_LENGTH + SIGNATURE_LENGTH, payloadByteLength, 'utf8');
out.set(payloadBuf, HEADER_LENGTH + SIGNATURE_LENGTH);

return out;
}
Expand Down