Capability allows an agent to add an arbitrary DAG (root) to the upload list
of the specified (memory) space (identified by did:key in the with field).
It is recommended to provide an optional list of shard links that contain
fragments of this DAG, as it allows system to optimize block discovery, it is
also a way to communicate DAG partiality - this upload contains partial DAG
identified by the given root.
Usually when agent wants to upload a DAG it will encode it as a one or more
CAR files (shards) and invoke store/add capability for each one. Once all
shards are stored it will invoke upload/add capability (providing link to
a DAG root and all the shards) to add it the upload list.
That said upload/add could be invoked without invoking store/adds e.g.
because another (memory) space may already have those CARs.
Note: If DAG with the given root is already in the upload list, invocation
will simply update shards to be a union of existing and new shards.
Capability allows an agent to add an arbitrary DAG (root) to the upload list of the specified (memory) space (identified by did:key in the
with
field). It is recommended to provide an optional list of shard links that contain fragments of this DAG, as it allows system to optimize block discovery, it is also a way to communicate DAG partiality - this upload contains partial DAG identified by the givenroot
.Usually when agent wants to upload a DAG it will encode it as a one or more CAR files (shards) and invoke
store/add
capability for each one. Once all shards are stored it will invokeupload/add
capability (providing link to a DAG root and all the shards) to add it the upload list.That said
upload/add
could be invoked without invokingstore/add
s e.g. because another (memory) space may already have those CARs.Note: If DAG with the given root is already in the upload list, invocation will simply update
shards
to be a union of existing and new shards.