跳到主要内容

branchMaterializationPageFingerprint()

function branchMaterializationPageFingerprint(payload): string;

Defined in: packages/rxdb/src/sync-contract/branch-materialization-source.ts:230

算一页快照 payload 的指纹——这是分页指纹的公开口径(FR-044)。

Parameters​

ParameterTypeDescription
payloadRecord<string, unknown>该页原样落库的那份 payload

Returns​

string

十六进制 SHA-256

Remarks​

来源方交页时算一次,屏障投影之前拿存下来的 payload 复算一次再比;口径只存在于某一侧的话, 另一侧只能靠试出来,试出来的那一份会在本函数改版那天静默失配。

只吃 payload,不掺页号、attempt id 或目标分支:掺进去之后,同一页内容在续用一份旧 attempt 时会因为页号错位而"变了内容",而页号是否错位由屏障的密集性检查单独回答。 两件事合进一个值,报出来的成因就永远只有一个。

Example​

const payload = { repository: 'public:todo', changes: [] };
const page = { payload, fingerprint: branchMaterializationPageFingerprint(payload) };