Skip to content

Commit

Permalink
storage: Tweak README
Browse files Browse the repository at this point in the history
  • Loading branch information
patniemeyer committed May 15, 2024
1 parent 7e71730 commit 1dcedb9
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
6 changes: 4 additions & 2 deletions str-twincoding/README-in.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ This repository contains work in progress on the file encoding CLI and server fr

## Overview

Orchid Storage is a (truly) decentralized storage system capable of maintaining files and issuing payments based on data availbility even when the client is offline. This is accomplished through incentive aligned providers, non-interactive verification protocols, and efficient rebuilding and migration capabilities.
Orchid Storage is a (truly) decentralized storage system capable of maintaining files and issuing payments based on data availbility even when the client is offline. This is accomplished through incentive-aligned providers, non-interactive verification protocols, and efficient rebuilding and migration capabilities.

In this demo implementation files are imported to a local repository directory structure where they are optionally encrypted using an RSA key with AES and then encoded to a specified number of shards. Shards are linear coded in a "k of n" scheme such that only a specified subset of shards must be recovered to reconstruct the file. The use of Twin Coding (see below) allows individual shards to be reconstructed with minimal bandwidth by cooperating providers.

Expand All @@ -30,7 +30,9 @@ Shards are distributed to one or more providers as desired. Individual providers

Periodic challenges are issued to providers, either interactively or via a source of on-chain randomness, requiring proof of specific data components. Providers collect payments by proving data availability. These payments can be optimized to require zero on-chain transactions when the client is available online but can still function via a non-interactive contract mechanism in the absence of the client.

![Proofs](docs/proofs.svg "Proofs")
<div style="text-align: center;">
<img src="docs/proofs.svg" alt="Proofs" title="Proofs" width="320" />
</div>


## Twin Coding
Expand Down
10 changes: 8 additions & 2 deletions str-twincoding/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ This repository contains work in progress on the file encoding CLI and server fr

## Overview

Orchid Storage is a (truly) decentralized storage system capable of maintaining files and issuing payments based on data availbility even when the client is offline. This is accomplished through incentive aligned providers, non-interactive verification protocols, and efficient rebuilding and migration capabilities.
Orchid Storage is a (truly) decentralized storage system capable of maintaining files and issuing payments based on data availbility even when the client is offline. This is accomplished through incentive-aligned providers, non-interactive verification protocols, and efficient rebuilding and migration capabilities.

In this demo implementation files are imported to a local repository directory structure where they are optionally encrypted using an RSA key with AES and then encoded to a specified number of shards. Shards are linear coded in a "k of n" scheme such that only a specified subset of shards must be recovered to reconstruct the file. The use of Twin Coding (see below) allows individual shards to be reconstructed with minimal bandwidth by cooperating providers.

Expand All @@ -30,7 +30,9 @@ Shards are distributed to one or more providers as desired. Individual providers

Periodic challenges are issued to providers, either interactively or via a source of on-chain randomness, requiring proof of specific data components. Providers collect payments by proving data availability. These payments can be optimized to require zero on-chain transactions when the client is available online but can still function via a non-interactive contract mechanism in the absence of the client.

![Proofs](docs/proofs.svg "Proofs")
<div style="text-align: center;">
<img src="docs/proofs.svg" alt="Proofs" title="Proofs" width="320" />
</div>


## Twin Coding
Expand Down Expand Up @@ -124,6 +126,10 @@ monitor.sh --update 1
# (Observe the availability of the file in the monitor)
storage.sh push foo_file.dat
# Verify the file data availability by issuing KZG challenges to the servers.
# (Observe the verified time update in the monitor)
storage.sh verify file_1MB.dat
# Delete a shard from one of the providers
# (Observe the availability is reduced as a unique shard is lost)
storage.sh delete_shard --provider 5001 foo_file.dat --node_type 0 --node_index 0
Expand Down

0 comments on commit 1dcedb9

Please sign in to comment.