Skip to content

Commit

Permalink
Merge pull request #424 from holochain/2024-02-09-fix-source-chain-ge…
Browse files Browse the repository at this point in the history
…nesis

update source chain CC to say that init complete can have app actions preceding it
  • Loading branch information
pdaoust authored Feb 19, 2024
2 parents 86e1d21 + bf41816 commit a5585b7
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
Binary file modified src/assets/img/concepts/3.4-genesis-records-3-and-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 3 additions & 2 deletions src/pages/concepts/3_source_chain.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ The user's actions are stored in the source chain as **records**, which consist

It's most helpful to think of an action as just that --- the _act of changing application state_. So instead of thinking of a source chain record as "a chat message", for instance, you could think of it as recording "the act of adding a chat message to your feed". So while it's useful for noun-like things like messages and images, it is also well-suited to things like real-time document edits, game moves, and transactions. You'll learn about all the different action types in the section on [CRUD](../6_crud_actions/) --- actions like 'create link' and 'delete entry'.

This journal starts with four special system records:
This journal starts with three special system records, followed optionally by some app data, and one final system record:

![](/assets/img/concepts/3.3-genesis-records-1-and-2.png){.sz60p} {.center}

Expand All @@ -63,7 +63,8 @@ This journal starts with four special system records:
1. The **DNA hash**. Because the DNA's executable code constitutes the 'rules of the game' for a network of participants, this record claims that your Holochain runtime has seen and is abiding by those rules.
2. The agent's **membrane proof**. When a cell tries to join a network, it shares this entry with the existing peers, who check it and determine whether the cell should be allowed to join them. Examples: an invite code, an employee ID signed by the HR department, or a proof of paid subscription fees.
3. The **agent ID**. This contains your public key as your digital identity. The signatures on all subsequent records must match this public key in order to be valid.
4. The **init complete** action. This is a record meant for internal use, simply helping the conductor remind itself that it's activated the cell --- that is, the cell has been accepted into the network and the 'init' [lifecycle callback](../11_lifecycle_events) has been called in all coordinator zomes that define one.
4. Zero or more records containing application data that was written during the init process --- that is, by the `init` [lifecycle callback](../11_lifecycle_events) of any coordinator zomes that define one.
4. The **init complete** action. This is a record meant for internal use, simply helping the conductor remind itself that it's completely activated the cell by running all the coordinator zomes' `init` callbacks.

After this come the records that record the user's actions. These include:

Expand Down

0 comments on commit a5585b7

Please sign in to comment.