Skip to content

IPFS Registry

Extended PublicId

IPFS registry utilizes an updated version of the existing PublicId format. Previous PublicId followed author/package:version format as a package identifier. But the newer version also includes the IPFS hash for the package as a part of the identifier with author/package:version:hash format.

So to utilize the newer PublicId format we have a script which extends all available packages with the new PublicId format.

Setup the AEA to use the IPFS registry

Initialize AEA cli tool with default registry set to remote and default remote registry set to ipfs.

aea init --author author_name --remote --ipfs

You can either set the multiaddr value for the IPFS node at the initialization or export it as an environment variable.

aea init --author author_name --remote --ipfs --ipfs-node MULTIADDR

Or

export OPEN_AEA_IPFS_ADDR=MULTIADDR

Publish packages

To publish a package on the IPFS registry, first run aea packages lock to update the dependencies with the latest IPFS hashes. Then push the relevant packages using

aea push COMPONENT_TYPE COMPONENT_PATH

For example, push the signing protocol using

aea push protocol packages/open_aea/protocols/signing

Adding packages

Packages can be downloaded using both extended public ids and hashes

aea add COMPONENT_TYPE PUBLIC_ID_OR_HASH

Add the signing protocol using

aea add protocol open_aea/signing:1.0.0:bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi --remote

Or

aea add protocol open_aea/signing:1.0.0:bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi --remote

Publishing agents

Navigate to the agent directory and publish the agent using

aea publish

Fetching agents

Agents can be fetched from the IPFS registry in the same way as fetching packages by using extended public ids or plain IPFS hashes.

aea fetch PUBLIC_ID_OR_HASH