You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/documentation/gsoc.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ However, there are several key differences:
20
20
21
21
- Unlike PSS, **GSOC only needs to mine the target chunk once**—multiple messages reuse it, making it **faster, cheaper**, and **more efficient** for recurring updates.
22
22
- Unlike PSS, **No encryption** is used by default, making it unsuitable for handling sensitive data.
23
-
23
+
- Unlike PSS, **GSOC chunks are not meant to be retrieved directly**. The SOC used to initiate a GSOC connection is used to listen for incoming messages only, the chunk itself is not meant to be retrieved since the incoming messages are not actually used to update the SOC since double-signing an SOC is undefined behavior.
Copy file name to clipboardExpand all lines: docs/documentation/pinning.md
+3-14Lines changed: 3 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,9 @@ slug: /pinning
5
5
sidebar_label: Pinning
6
6
---
7
7
8
-
Pinning allows you to guarantee that your uploaded content will always be available by storing it **locally on your own Bee node**. However, pinning **guarantee availability across the Swarm network**. Therefore you must use pinning along with the **stewardship utilities** included in `bee-js` to monitor the availability of your pinned content and reupload it if needed.
8
+
Pinning allows you to guarantee that content will always be available by storing it **locally on your own Bee node**.
9
+
10
+
However, pinning ***does not*** guarantee availability across the Swarm network. Therefore you must use pinning along with the **stewardship utilities** included in `bee-js` to monitor the availability of your pinned content and reupload it if needed.
9
11
10
12
In this section, you'll learn how to:
11
13
@@ -15,8 +17,6 @@ In this section, you'll learn how to:
15
17
- View all currently pinned references
16
18
- Remove pins that are no longer required
17
19
18
-
19
-
20
20
## Pinning and Unpinning Content
21
21
22
22
To pin a reference (so it remains stored on your node):
@@ -33,7 +33,6 @@ await bee.unpin(reference)
33
33
console.log('Reference unpinned and no longer tracked.')
34
34
```
35
35
36
-
37
36
## Checking if a Reference is Retrievable
38
37
39
38
Use `isReferenceRetrievable(reference)` to verify if the content for a given Swarm reference is currently accessible on the network:
Once you’re done tracking an upload, you can delete the tag to keep your node clean:
79
-
80
-
```js
81
-
awaitbee.deleteTag(tag.uid)
82
-
console.log("Deleted tag:", tag.uid)
83
-
```
84
-
85
-
86
75
## Example Script
87
76
88
77
The following script automates the process of checking all locally pinned references, verifying their retrievability from the network, and reuploading any that are missing. This ensures that your pinned data remains available even if it has dropped out of the Swarm network.
Copy file name to clipboardExpand all lines: docs/documentation/soc-and-feeds.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ sidebar_label: SOC and Feeds
9
9
import Tabs from '@theme/Tabs'
10
10
import TabItem from '@theme/TabItem'
11
11
12
-
Swarm provides the ability to store content in content-addressed [chunks](https://docs.ethswarm.org/docs/concepts/DISC/#content-addressed-chunks-and-single-owner-chunks) (CAC) whose addresses are derived from the chunk data, or Single Owner Chunks (SOC) whose addresses are derived from the uploader's own public key and chosen identifier. With single owner chunks, a user can assign arbitrary data to an address and attest chunk integrity with their digital signature.
12
+
Swarm provides the ability to store content in content-addressed [chunks](https://docs.ethswarm.org/docs/concepts/DISC/#content-addressed-chunks-and-single-owner-chunks) (CAC) whose addresses are derived from the chunk data, or Single Owner Chunks (SOC) whose addresses are derived from the uploader's address and chosen identifier. With single owner chunks, a user can assign arbitrary data to an address and attest chunk integrity with their digital signature.
13
13
14
14
Feeds are a unique feature of Swarm which simulate the publishing of mutable content on Swarm's immutable storage. ***Feeds constitute the primary use case for SOCs.*** Developers can use Feeds to version revisions of a mutable resource by indexing sequential updates to a topic at predictably calculated addresses. Because Feeds are built on top of SOCs, their interfaces are somewhat similar and use common concepts.
15
15
@@ -31,7 +31,7 @@ SOCs are powerful and flexible low-level feature which provide the foundation up
31
31
:::
32
32
33
33
:::warning SOCs are immutable!
34
-
You might be tempted to modify a SOC's content to "update" the chunk. Reuploading of an SOC is forbidden in Swarm as it might create uncertain behavior. A Bee node will reject the API call if it finds an already existing SOC for the given address. Either use a different `identifier`, or you might be looking for feeds if you need to perform multiple updates to the same content.
34
+
You might be tempted to modify a SOC's content to "update" the chunk. Reuploading of an SOC is discouraged as its behavior is undefined. Either use a different `identifier`, or you might be looking for feeds if you need to perform multiple updates to the same content.
Copy file name to clipboardExpand all lines: docs/documentation/tracking-uploads.md
+23-7Lines changed: 23 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,13 @@ slug: /tracking-uploads
5
5
sidebar_label: Tracking Uploads
6
6
---
7
7
8
-
You can track the progress of your uploads using "tags". Each tag tracks how many chunks were **split**, **stored**, **seen**, and **synced** by the network. By creating a tag before uploading and passing it to the upload function, you make the upload *trackable, allowing you to confirm whether your uploaded data has been fully synced.
8
+
You can track the progress of deferred uploads using "tags". Each tag tracks how many chunks were **split**, **stored**, **seen**, and **synced** by the network. By creating a tag before uploading and passing it to the upload function, you make the upload *trackable, allowing you to confirm whether your uploaded data has been fully synced.
9
+
10
+
:::info
11
+
Tracking with tags is used ***only for [deferred uploads](/docs/upload-download/#deferred-uploads)***. That is because when content is uploaded in a deferred manner, the content's reference hash will be returned *immediately*, often before the content has been fully synced to the network. Therefore tags should be used in order to confirm when the content has been fully synced and is retrievable.
12
+
13
+
With direct uploads, the reference hash is not returned until after the content has already been uploaded and fully synced to the network, so there is no need to track it after uploading.
14
+
:::
9
15
10
16
## How It Works
11
17
@@ -43,12 +49,19 @@ This links the upload to your tag so you can monitor its progress.
43
49
44
50
### 3. Track Tag Progress
45
51
46
-
Use `bee.retrieveTag(tagUid)` to check how many chunks have been split and how many are synced. Poll repeatedly until `synced === split` to know when the upload has fully propagated.
52
+
Use `bee.retrieveTag(tagUid)` to monitor upload progress. Chunks that have **already been synced in the past** are counted in `seen`, while newly synced ones are in `synced`. Poll repeatedly until:
53
+
54
+
```text
55
+
synced + seen === split
56
+
```
57
+
58
+
This indicates that all chunks have either just synced or were already present in the network.
If you do use `deferred: true`, make sure to use a [tag](/docs/upload-download/#using-tags-to-monitor-upload-progress) to track upload progress and confirm the success or failure of the upload.
327
+
If you do use `deferred: true`, make sure to use a [tag](/docs/tracking-uploads/) to track upload progress and confirm the success of the upload.
0 commit comments