Skip to content

A core pattern for storing AND FINDING data in a Holochain DHT. Anchors are a predictable hash (by using known content) from which you can attach links

License

Notifications You must be signed in to change notification settings

holochain/holochain-anchors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Holochain Anchors

NOTE: In Holochain RSM anchors is has been built into core

This crate allows a Holochain-redux project to easily use the anchors pattern for creating links.

Install

Add the following to your zomes cargo toml.

holochain_anchors = "0.2.3"

Usage

Add the anchor entry def to your zome.

 #[entry_def]
fn anchor_def() -> ValidatingEntryType {
    holochain_anchors::anchor_definition()
}

Link from the ANCHOR_TYPE

links: [
    from!(
        holochain_anchors::ANCHOR_TYPE,
        link_type: "my_link_type",
        validation_package: || {
            hdk::ValidationPackageDefinition::Entry
        },

        validation: |_validation_data: hdk::LinkValidationData| {
            Ok(())
        }
    )
]

Create an anchor and link an entry to it. If the anchor already exists then it will use the existing anchor.

let my_entry = Entry::App(
    "my_entry".into(),
        MyEntry{
        content: "some_content".into()
    }.into()
);
let address = hdk::commit_entry(&my_entry)?;
let anchor_address = holochain_anchors::anchor("my_anchor_type".into(), "my_anchor".into())?;
hdk::link_entries(&anchor_address, &address, "my_link_type", "my_anchor")?;

Get all the links on that anchor.

let anchor_address = holochain_anchors::anchor("my_anchor_type".into(), "my_anchor".into())?;
hdk::utils::get_links_and_load_type(&anchor_address, LinkMatch::Exactly("my_link_type"), LinkMatch::Any)

About

A core pattern for storing AND FINDING data in a Holochain DHT. Anchors are a predictable hash (by using known content) from which you can attach links

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published