Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 1.22 KB

README.md

File metadata and controls

39 lines (33 loc) · 1.22 KB

Creating a new epoch

This is a spec for how to initialise a new epoch (after the first initial "zero" epoch a.k.a. initRoot).

⚠️ schema.json is generated so don't modify it directly

Epoch init example

const groupRoot = 'ssb:message/classic/Zz-Inkte70Qz1UVKUHIhOgo16Oj_n37PfgmIzLDBgZw=.sha256'
const groupId = 'ssb:identity/group/g_JTmMEjG4JP2aQAO0LM8tIoRtNkTq07Se6h1qwnQKb='

var plainText = {
  type: 'group/init'
  version: 'v2',
  secret: group_secret.toString('base64'),
  tangles: {
    group: {
      root: groupRoot,
      previous: [lastMessageOnPreviousEpoch]
    },
    epoch: {
      root: groupRoot,
      previous: [lastGroupInitOnPreviousEpoch]
    }
    members: {
      root: null,
      previous: null
    }
  },
  recps: [groupId, myRootFeedId]
}

Note the differences between the root init msg (the "zero epoch") and epoch init messages:

  • The group tangle is not null and like normal, points at the group root and the latest messages.
  • The epoch tangle is not null and points at the root msg as well as the init for the last epoch.
  • The members tangle is always null in "group/init" messages, since that tangle is reset there.
  • Recps is defined, and includes the group id as well as your own root feed id.