Skip to content
This repository has been archived by the owner on Apr 15, 2024. It is now read-only.

Commit

Permalink
* renamed to channels
Browse files Browse the repository at this point in the history
* updated test and basic_scenario

* fixed issue with inconsistent nonce size

* generate random nonce and session key

* cargo fmt
  • Loading branch information
semenov-vladyslav committed Apr 14, 2020
1 parent 6ea3b40 commit 3edda0e
Show file tree
Hide file tree
Showing 25 changed files with 724 additions and 501 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ members = [
"iota-streams-core-mss",
"iota-streams-protobuf3",
"iota-streams-app",
"iota-streams-app-channel",
"iota-streams-app-channels",
]

[dependencies]
Expand All @@ -31,4 +31,4 @@ iota-streams-core-merkletree = { version = "0.1.0", path = "iota-streams-core-me
iota-streams-core-mss = { version = "0.1.0", path = "iota-streams-core-mss" }
iota-streams-protobuf3 = { version = "0.1.0", path = "iota-streams-protobuf3" }
iota-streams-app = { version = "0.1.0", path = "iota-streams-app" }
iota-streams-app-channel = { version = "0.1.0", path = "iota-streams-app-channel" }
iota-streams-app-channels = { version = "0.1.1", path = "iota-streams-app-channels" }
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# IOTA Streams

This is the **WIP** Rust IOTA Streams library, it consists of the following components:
* [Channel Application](iota-streams-app-channel/README.md) featuring Channel Application.
* [Channels Application](iota-streams-app-channels/README.md) featuring Channels Application.
* [Core layers](iota-streams-core/README.md) featuring utils for trinary/binary manipulations, sponge-based authenticated encryption with Troika permutation, pre-shared keys, pseudo-random generator;
* [Keccak for core layers](iota-streams-core-keccak/README.md) featuring Keccak-F[1600] as spongos transform;
* [Traversable Merkle tree](iota-streams-core-merkletree/README.md) featuring traversable Merkle tree;
Expand All @@ -17,15 +17,15 @@ The library is in the alpha stage and the API is likely to change.
| [Streams](#overview)|
| [Prerequisites](#prerequisites)|
| [Getting started](#getting-started)|
| [API reference](#api-reference)
| [API reference](#api-reference)|
| [Examples](#examples)|
| [License](#license)|

## Streams

IOTA Streams is a framework for cryptographic protocols called Applications. Streams ships with an existing application, called Channel. The Channel application builds on and extends functionality known from Masked Authenticated Messaging v0 and v1.0.
IOTA Streams is a framework for cryptographic protocols called Applications. Streams ships with an existing application, called Channels. The Channels application builds on and extends functionality known from Masked Authenticated Messaging v0 and v1.0.

As a cryptographic protocol framework, Streams allows developers to build Applications for their specific needs. This process will be documented in how-tos that will be published as the develppment progresses.
As a cryptographic protocol framework, Streams allows developers to build Applications for their specific needs. This process will be documented in how-tos that will be published as the development progresses.

## Prerequisites

Expand Down Expand Up @@ -62,18 +62,18 @@ cd streams/
cargo test --all
```

Now you can use the Streams Channel Application in your code like this:
Now you can use the Streams Channels Application in your code like this:

```
use iota_streams::app_channel::api::tangle::{Author, Subscriber};
use iota_streams::app_channels::api::tangle::{Author, Subscriber};
fn main() {
let author = Author::new("AUTHORSSEED", 3, false);
let subscriber = Subscriber::new("SUBSCRIBERSSEED", false);
}
```

For a more comprehensive example of using the Streams Channel Application can be found [here](iota-streams-app-channel/examples/basic_scenario.rs).
For a more comprehensive example of using the Streams Channels Application can be found [here](iota-streams-app-channels/examples/basic_scenario.rs).

## API reference

Expand All @@ -84,7 +84,7 @@ cargo doc --open

## Examples

Examples of using Channel Application can be found [here](iota-streams-app-channel/examples).
Examples of using Channels Application can be found [here](iota-streams-app-channels/examples).

## License

Expand Down
13 changes: 0 additions & 13 deletions iota-streams-app-channel/README.md

This file was deleted.

84 changes: 0 additions & 84 deletions iota-streams-app-channel/examples/basic_scenario.rs

This file was deleted.

83 changes: 0 additions & 83 deletions iota-streams-app-channel/src/api/tangle/test.rs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
[package]
name = "iota-streams-app-channel"
version = "0.1.0"
name = "iota-streams-app-channels"
version = "0.1.1"
authors = ["Vlad Semenov <[email protected]>"]
edition = "2018"
license = "Apache-2.0/MIT"
readme = "README.md"
keywords = ["iota", "streams", "app", "channel"]
description = "A rust implementation of the IOTA Streams Channel Application"
keywords = ["iota", "streams", "app", "channels"]
description = "A rust implementation of the IOTA Streams Channels Application"

[lib]
name = "iota_streams_app_channel"
name = "iota_streams_app_channels"
path = "src/lib.rs"

[dependencies]
Expand All @@ -19,3 +19,6 @@ iota-streams-core-mss = { version = "0.1.0", path = "../iota-streams-core-mss" }
iota-streams-protobuf3 = { version = "0.1.0", path = "../iota-streams-protobuf3" }
iota-streams-app = { version = "0.1.0", path = "../iota-streams-app" }
failure = "0.1"

[dev-dependencies]
iota-lib-rs = { version = "^0.4.1" }
13 changes: 13 additions & 0 deletions iota-streams-app-channels/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# IOTA Streams Application layer: core definitions and Channels Application.

## Streams Application

Streams Application is a message-oriented cryptographic protocol. Application defines protocol parties, their roles, syntax and semantic of protocol messages. Messages are declared in Protobuf3 syntax and are processed according to Protobuf3 rules. Streams Message consists of Header and Application-specific Content.

## Channels Application

Channels Application has evolved from previous versions of Streams. There are two roles: Author and Subscriber. Author is a channel instance owner capable of proving her identity by signing messages. Subscribers in this sense are anonymous as their public identity (NTRU public key) is not revealed publicly. Author can share session key information (Keyload) with a set of Subscribers. Author as well as allowed Subscribers can then interact privately and securely.

## Customization

There are a few known issues that araise in practice. Streams makes an attempt at tackling them by tweaking run-time and compile-time parameters. If Channels Application is not suitable for your needs you can implement your own Application, and Protobuf3 implementation as a EDSL allows you to easily wrap and unwrap messages of your Application. And when Protobuf3 is not powerful enough, it can be extended with custom commands.
Loading

0 comments on commit 3edda0e

Please sign in to comment.