diff --git a/documentation/.gitignore b/documentation/.gitignore deleted file mode 100644 index 86a0f09e..00000000 --- a/documentation/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -# Dependencies -node_modules - -# Yarn -.pnp.* -.yarn/* -!.yarn/patches -!.yarn/plugins -!.yarn/releases -!.yarn/sdks -!.yarn/versions - -# Production -/build - -# Generated files -.docusaurus -.cache-loader -package-lock.json - -# Misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/documentation/.yarnrc.yml b/documentation/.yarnrc.yml deleted file mode 100644 index 3186f3f0..00000000 --- a/documentation/.yarnrc.yml +++ /dev/null @@ -1 +0,0 @@ -nodeLinker: node-modules diff --git a/documentation/README.md b/documentation/README.md deleted file mode 100644 index a637d29d..00000000 --- a/documentation/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Documentation - -The documentation is built using [Docusaurus 2](https://docusaurus.io/). The deployment is done through a centralized build from [IOTA WIKI](https://github.com/iota-community/iota-wiki). To run a local instance the [IOTA WIKI CLI](https://github.com/iota-community/iota-wiki-cli) is used. - -## Prerequisites - -- [Node.js 16.10 or above](https://nodejs.org/en/download/). -- [Modern Yarn](https://yarnpkg.com/getting-started/install) enabled by running `corepack enable`. - -## Installation - -```console -yarn -``` - -This command installs all necessary dependencies. - -## Local Development - -```console -yarn start -``` - -This command starts a local, wiki themed development server and opens up a browser window. Most changes are reflected live without having to restart the server. - -## Writing Documentation - -You can find guidance on writing documentation in [IOTA Wiki itself](https://wiki.iota.org/participate/contribute-to-wiki/welcome). - -## Default Documentation Structure - -This template provides you with a default documentation structure for your software project. To learn about different types of documentation, see the [reference](https://wiki.iota.org/participate/contribute-to-wiki/reference/structure/overview). diff --git a/documentation/config.json b/documentation/config.json deleted file mode 100644 index 67f6f823..00000000 --- a/documentation/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "repoName": "streams", - "contentFolder": "documentation", - "localWikiFolder": "local-wiki", - "excludeList": ["node_modules", "target", ".git/", "local-wiki"] -} diff --git a/documentation/docs/contribute.md b/documentation/docs/contribute.md deleted file mode 100644 index f33fc408..00000000 --- a/documentation/docs/contribute.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -description: Contribute to the IOTA Client Library joining the IOTA Libraries Initiative, contributing to the official GitHub repository or sharing your knowledge on Discord. -image: /img/logo/iota_mark_light.png -keywords: -- join -- documentation -- project -- contribute -- discord -- GitHub ---- -# Contribute to the Project - -**Thanks for thinking about contributing to the project! We have the following ways that you can contribute.** - -## Join the IOTA Libraries Initiative - -The [IOTA Libraries Initiative](https://github.com/iota-community/X-Team_IOTA_Streams) is a collaborative effort to help improve the developer experience. - -- Quality assurance and review -- Documentation -- Code samples - -If you'd like to get involved, join the #experience channel on [Discord](https://discord.iota.org). - -## Contribute to the project's GitHub repository - -All the code is open source and hosted on [GitHub](https://github.com/iotaledger/streams) where you can do the following: - -- Report a bug -- Suggest a new feature -- Contribute to the documentation - -## Contribute to the documentation - -This documentation is also open source and hosted on GitHub. - -If you want to contribute new documentation or fix an error, see the [contribution guidelines](https://github.com/iotaledger/documentation/blob/develop/.github/CONTRIBUTING.md). - -## Share your knowledge - -Helping others is an important part of any open source ecosystem. - -By sharing your knowledge with others, you can provide a lot of value to the community and maybe inspire someone else to learn and contribute. - -Take a look at what discussions are going on in the #clients-discussion channel on [Discord](https://discord.iota.org). - -Thanks :heart: \ No newline at end of file diff --git a/documentation/docs/getting_started.md b/documentation/docs/getting_started.md deleted file mode 100644 index cdc245dd..00000000 --- a/documentation/docs/getting_started.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -description: Choose your binding and get started with the Streams Library. -image: /img/logo/iota_mark_light.png -keywords: -- rust -- wasm -- c -- IDE ---- -# Getting Started - -To check out our examples and write and test your own code, you would need an IDE or a code editor of your choice and a stable internet connection. You also need to set up your environment by following [this](./libraries/rust/getting_started.md) instructions. - -We assume that you already know the basics of the Rust programming language. Companies and communities behind each language provide their own documentation for beginners: [Rust](https://www.rust-lang.org/learn/get-started). You could start with that first, or refer to these guides as you read through our streams documentation. If you have never programmed in your life, MIT has published an open [introductory course to programming](https://ocw.mit.edu/courses/intro-programming/#general). Check it out! \ No newline at end of file diff --git a/documentation/docs/libraries/overview.md b/documentation/docs/libraries/overview.md deleted file mode 100644 index ed72baba..00000000 --- a/documentation/docs/libraries/overview.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -description: The `streams` library is written in Rust. You can also find bindings written for wasm and C. -image: /img/overview/layered_overview.svg -keywords: -- bindings -- library -- rust -- wasm -- c ---- -# IOTA Streams libraries - -The `streams` library is currently available in the following languages: - -- [Rust](./rust/getting_started.md) - -## Getting Started - -The recommended approach to start your interactions with IOTA is to use a developer network. A public API load balancer is provided here: [api.lb-0.h.chrysalis-devnet.iota.cafe](https://api.lb-0.h.chrysalis-devnet.iota.cafe) - -The test network explorer is available at the [IOTA Tangle explorer](https://explorer.iota.org/devnet/). \ No newline at end of file diff --git a/documentation/docs/libraries/rust/api_reference.md b/documentation/docs/libraries/rust/api_reference.md deleted file mode 100644 index 08490c6a..00000000 --- a/documentation/docs/libraries/rust/api_reference.md +++ /dev/null @@ -1,16 +0,0 @@ -# API Reference - -Users are broken down into two types: `Author` and `Subscriber`. An `Author` is the user -that generates the channel, accepts subscription requests and can perform access granting -and restriction methods. A `Subscriber` is an instance that can attach to a channel to read -from and write to depending on the access privileges they've been granted. - -You can generate the api reference with: -``` -cargo doc --document -``` - - - - - diff --git a/documentation/docs/libraries/rust/examples.md b/documentation/docs/libraries/rust/examples.md deleted file mode 100644 index c58a1722..00000000 --- a/documentation/docs/libraries/rust/examples.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -description: Official IOTA Streams Rust API examples. -image: /img/logo/iota_mark_light.png -keywords: -- api -- Rust -- examples ---- -# Examples -A list of example implementations can be found [here](https://github.com/iotaledger/streams-examples) - -Additionally there are a couple of local examples present [here](https://github.com/iotaledger/streams/tree/develop/examples). -To run these examples simply update the `.env` file with the node url you would like -to use, and run the command: -``` -cargo run --release -``` diff --git a/documentation/docs/libraries/rust/getting_started.md b/documentation/docs/libraries/rust/getting_started.md deleted file mode 100644 index 8d76758c..00000000 --- a/documentation/docs/libraries/rust/getting_started.md +++ /dev/null @@ -1,142 +0,0 @@ -# Getting Started -Streams requires an asynchronous runtime environment to be set, we suggest using [tokio](https://docs.rs/tokio/latest/tokio/). Streams also uses [anyhow](https://docs.rs/anyhow/latest/anyhow/) for error handling, so projects can use `anyhow::Result` and `anyhow::Error` for easier integration. - -To create a new Rust project, run: - -```bash -cargo new PROJECT_NAME -``` - -Create two of these Rust projects, one for the author and one for the subscriber, and add the following dependencies to both their `Cargo.toml` files: - -```toml -tokio = { version = "1.5.0", features = ["full"] } -anyhow = { version = "1.0" } -iota-streams = { git = "https://github.com/iotaledger/streams", branch = "develop"} - -# Temporarily needed because Streams is a work in progress -bee-message = "=0.1.5" -bee-rest-api = "=0.1.2" -``` - -## Basic Usage -With the needed projects and their dependencies added, we can start using the Streams library. Below are two example scripts for both the author and the subscriber. The author script will announce a channel and print the announcement link. The subscriber script handles the announcement to let the subscriber know where to find the channel. - -### Author -Replace the seed of the author with a random string and run the script to get the announcement link. - -``` -use anyhow::Result; -use iota_streams::app_channels::api::tangle::{Author, ChannelType}; -use iota_streams::app::transport::tangle::client::Client; - -#[tokio::main] -async fn main() -> Result<()> { - let node = "https://chrysalis-nodes.iota.org"; - let client = Client::new_from_url(node); - - // Author implementation will set the Channel Type - let mut author = Author::new("AUTHOR_SEED", ChannelType::SingleBranch, client); - - // Start the channel and retrieve the announcement link - let ann_link = author.send_announce().await?; - - // Convert the announcement link to a string to share with others - println!("{}", ann_link.to_string()); - Ok(()) -} -``` - -### Subscriber -Replace the seed of the subscriber with a random string, paste the announcement link from the author script above and run the script to let the subscriber find the channel. - -``` -use anyhow::Result; -use iota_streams::app_channels::api::tangle::{Address, Subscriber}; -use iota_streams::app::transport::tangle::client::Client; -use std::str::FromStr; - -#[tokio::main] -async fn main() -> Result<()> { - let node = "https://chrysalis-nodes.iota.org"; - let client = Client::new_from_url(node); - - // Subscriber implementation does not need to specify a channel type, it will be - // parsed from the announcement message - let mut subscriber = Subscriber::new("SUBSCRIBER_SEED", client); - - // Create Address object from announcement link string - let ann_link = Address::from_str("ANNOUNCEMENT_LINK")?; - - // Process the announcement message - subscriber.receive_announcement(&ann_link).await?; - Ok(()) -} -``` - -## Next Steps -Now we can begin subscribing users to the channel and generating branches to specify access control for publishers and subscribers via keyload messages. - -### Subscription -To subscribe to a channel, subscribers create a subscribe message that is linked to the channel announcement message. The link of this message should then be provided to the author. This allows the author to handle the subscription message and use the public key of the subscriber for access control and validation purposes. - -#### Subscriber -``` -// Send subscription message -let sub_link = subscriber.send_subscribe(&ann_link).await?; -// Provide the link to the author -println!("{}", sub_link.to_string()); -``` - -#### Author -``` -// Process subscriber link -let sub_link = Address::from_str("SUBSCRIPTION_LINK")?; -author.receive_subscribe(&sub_link).await?; -``` - -### Keyloads -Keyload messages are used as an access control mechanism for a branch. A random key is generated and masked within the message using the public keys or pre-shared keys included in them. This allows the author to specify which subscribers have access to which branches. There are two ways to send a keyload: -- Send a keyload including specific pre-shared keys or subscriber public keys. -- Send a keyload including all pre-shared keys and subscriber public keys known to the author. - -Example: -``` -// Send keyload including pre-shared key -let psk = psk_from_seed("KEY_SEED".as_bytes()); -let psk_id = pskid_from_psk(&psk); -author.store_psk(psk_id, psk)?; -author.send_keyload(&ann_link, &vec![psk_id.into()]).await?; - -// Send keyload for subscriber -author.send_keyload(&ann_link, &vec![subscriber_public_key.into()]).await?; - -// Send keyload for everyone -author.send_keyload_for_everyone(&ann_link).await?; -``` - -### Pre-shared keys -As an alternative to subscribing via public key exchange using subscribe messages, an author may specify access control through the use of a pre-shared key (PSK). A PSK is a 32 byte array containing a secret key, shared outside of the Streams instance, that can be used to specify access through a keyload message. If an author issues a keyload with a PSK included, and a subscriber reads this message with the same PSK stored within itself, then the subscriber can participate in the proceeding branch without being subscribed to the channel. - -Example: -``` -use iota_streams::app_channels::api::{psk_from_seed, pskid_from_psk}; -use rand::Rng; - -// Create a random key -let key_seed = rand::thread_rng().gen::<[u8; 32]>(); -let psk = psk_from_seed(&key); -let pskid = pskid_from_psk(&psk); - -// Store the PSK in the author -author.store_psk(pskid, psk)?; - -// Create a keyload with the PSK included -let keyload_link = author.send_keyload(&ann_link, &vec![psk_id.into()]).await?; - -// Store the same PSK in the subscriber -subscriber.store_psk(pskid, psk); - -// Process keyload message from subscriber end -subscriber.receive_keyload(&keyload_link).await?; -``` diff --git a/documentation/docs/overview.md b/documentation/docs/overview.md deleted file mode 100644 index 0759c9b7..00000000 --- a/documentation/docs/overview.md +++ /dev/null @@ -1,133 +0,0 @@ ---- -description: "The Streams framework is intended to be a secure message verification and protection protocol -for sending data over a given transport layer" -image: /img/overview/layered_overview.svg -keywords: -- layered overview -- high level -- low level -- stronghold -- channels -- author -- subscriber -- value transactions ---- -# Overview -The IOTA Streams framework is intended to be a secure message verification and protection protocol -for sending data over a given transport layer. - -The Channels protocol is designed as a replacement for the previously used MAM library for sending -data using the Tangle as the primary transportation mechanism. The channels themselves can be -structured in a number of ways with any arbitrary combination of publishers and subscribers (although -each channel can only be hosted by a single author instance) - - -# Channels Protocol -The Channels protocol provides the high level API tools necessary for authors and subscribers to be -generated and interact with the Tangle. - - -## Authors -A channel author is responsible for the generation of a new channel along with the configuration of the -intended structure of that channel (i.e single branch vs multi branch). An author of a channel will be -able to set the access restrictions to branches within a channel structure, as well as accepting and -managing user subscription messages. - -## Subscribers -A channel subscriber is any user within a channel that is not the author. A subscriber can be generated -independently without verification by an author, but in order to write to a branch, or to process any -private streams, they will be required to subscribe to the channel, and have the author accept and process -that subscription. A subscriber may also use pre-shared keys instead of subscription as a method of -interacting with a stream without conducting a subscription process. - - -## Branching -Branches can be defined as any sequential grouping of messages that are linked to the announcement -message. These branches will typically be generated with either a signed packet message or a keyload message for -public and private streaming respectively. A channel can assume two different forms: -- Single branch: a linear sequencing of messages (similar to a MAM stream) with each message linked to -the previous one. -- Multi branch: a sequencing of messages that does not rely on sequential linking of messages. - -When generating a channel, the author will decide whether the channel will use single branching or multi- -branching, this will inform the Streams instance in which way it should perform sequencing. subscribers will -also be informed as they process the announcement message, so their instances know the appropriate -sequencing order as well. - -## Keyloads -A keyload message is an access restriction and control message that allows the author to specify who should be -able to decrypt any messages that are attached following it. There are two ways to specify access when generating -a keyload message: -- Subscriber public keys -- Pre-shared keys - -### Public Keys -During the processing of subscription messages, public keys are masked and provided to the author to be stored on -their instance. That author can then specify which of these users will be able to access subsequent messages by -including that public key in the keyload message. - -### Pre-Shared Keys -A predefined key shared amongst users by other means then the subscription process above. These keys can be used to provide access restrictions to a stream -without the need for a subscription process. - -:::note - -The security and transportation of these pre-shared keys must be ensured by the user implementations. - -::: - -## Sequencing -Sequencing is the methodology built within streams to allow message identifiers to be sequentially generated regardless -of the shape of the channel. Messages are identified by an indexation position within the Tangle, and they are -generated using a combination of these pieces of information: -- Application instance (channel identifier). -- Public key of the publisher. -- Previous message id (The message being linked to). -- Branch number (identifier for the specific branch). -- Sequencing number (the sequencing position of the publisher). - -As messages are posted to and read from the channel, a local state for the user implementation will update with the message -identifier, branch and sequencing numbers for each publishing party. This allows user implementations to derive and -search for the next message in the sequence to keep in sync. - -### Single Branch Sequencing -In a single branch implementation, sequencing state of each user will be updated to the same state. This means that -regardless of the publisher, the state of each user will update the previous message id to the new message link, and the -sequencing number will be incremented by one. - -Sequence states before Msg1 is sent: -``` - Author Sub1 -Prev Msg Id Msg0 Msg0 -Branch No. 0 0 -Seq. No. 2 2 <- Users start from 2, 0 and 1 are reserved for subscriptions and announcements -``` - -Msg1 is then sent by the author using the above stated author state. - -Sequence states after Msg1 is sent: -``` - Author Sub1 -Prev Msg Id Msg1 Msg1 -Branch No. 0 0 -Seq. No. 3 3 -``` - -:::note - -It is recommended that a single branch be used with only a single publisher to avoid out of sync parties from -issuing and retrieving messages from an incorrect sequencing combination (i.e. Sub1 sends a message linked to Msg1 and Sub2 -sends a message linked to that same Msg1 before seeing and registering the message from Sub1, thus forking the stream). -Multiple publishers can be used, but it is important to ensure that they do not try to send messages in parallel to -avoid this conflict. In the future this may be an enforced limitation on single branch implementations to remove the -possibility altogether. - -::: - -### Multi Branch Sequencing -In a multi branch implementation, the sequencing state of each user will be updated independently after each message is sent. -In order to track the linking of messages of individual publishers within a tree-like structure, a secondary message is -sent in tandem with every data message. This message is called a sequencing message, and contains the essence necessary -for a user to derive the correct message id of a sequenced message. The sequencing messages are issued to an anchored -branch generated during the creation of the channel. As a new message is generated by a user, a sequencing message is -issued to this anchored branch to allow users a reference guide to the location of the issued data packet. diff --git a/documentation/docs/specs.md b/documentation/docs/specs.md deleted file mode 100644 index 52d877f6..00000000 --- a/documentation/docs/specs.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -description: "The Streams framework is intended to be a secure message verification and protection protocol -for sending data over a given transport layer" -image: /img/logo/wallet_light.png -keywords: -- Rust -- streams -- spec ---- -# Specifications document - -The specs doc can be found separate from docs here: -[Spec.pdf](https://github.com/iotaledger/streams/blob/develop/specification/Streams_Specification_1_0A.pdf) diff --git a/documentation/docs/troubleshooting.md b/documentation/docs/troubleshooting.md deleted file mode 100644 index 4223618a..00000000 --- a/documentation/docs/troubleshooting.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -description: Troubleshooting the Streams Library. -image: /img/logo/iota_mark_light.png -keywords: -- discussion -- channel -- problem -- solution -- discord -- stackexchange ---- -# Troubleshooting - - -## StackExchange - -> [https://iota.stackexchange.com](https://iota.stackexchange.com/) - -The IOTA StackExchange a a nice tool for developers to find answers for a problem. Just search your problem and find your answer! If there is no one, submit your question and share it in the discussion channel below. - -## Joining the discussion - -If you want to get involved in discussions about this library, or you're looking for support, go to the #streams channel on [Discord](https://discord.iota.org). \ No newline at end of file diff --git a/documentation/docs/welcome.md b/documentation/docs/welcome.md deleted file mode 100644 index 2849fcde..00000000 --- a/documentation/docs/welcome.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -description: Official IOTA Streams which can be used to easily integrate an IOTA Wallet into your application -image: /img/logo/wallet_light.png -keywords: -- requirements -- streams -- channels -- software -- library -- rust -- nodejs ---- -# Welcome - -This is the documentation for the official IOTA Streams software. You can read more about core principles behind IOTA Streams in the following blog [post](https://blog.iota.org/iota-streams-alpha-7e91ee326ac0/). - -Streams is an organizational tool for structuring and navigating secure data through the Tangle. Streams organizes data by ordering it in a uniform and interoperable structure. Needless to say, it is also based on our official *one source code of truth* [IOTA Rust library](https://github.com/iotaledger/iota.rs). - -:::caution - -This library is in active development. The library targets the Chrysalis network and does not work with the IOTA legacy network. - -::: - -More information about Chrysalis components is available at [documentation portal](https://wiki.iota.org/chrysalis-docs/welcome). - -## Joining the discussion - -If you want to get involved in discussions about this library, or you're looking for support, go to the #streams-discussion channel on [Discord](https://discord.iota.org). - -## What you will find here - -This documentation has five paths: - -1. The Overview: a detailed overview of the streams library. -2. Libraries: all available programming languages and their resources. -3. The Specification: detailed explanation requirements and functionality. -4. Contribute: how you can work on the streams software. -5. Get in touch: join the community and become part of the X-Team! diff --git a/documentation/docusaurus.config.js b/documentation/docusaurus.config.js deleted file mode 100644 index 168964d3..00000000 --- a/documentation/docusaurus.config.js +++ /dev/null @@ -1,17 +0,0 @@ -const path = require('path'); - -module.exports = { - plugins: [ - [ - '@docusaurus/plugin-content-docs', - { - id: 'streams', - path: path.resolve(__dirname, 'docs'), - routeBasePath: 'streams', - sidebarPath: path.resolve(__dirname, 'sidebars.js'), - editUrl: 'https://github.com/iotaledger/streams/edit/main/documentation', - } - ], - ], - staticDirectories: [path.resolve(__dirname, 'static')], -}; \ No newline at end of file diff --git a/documentation/package.json b/documentation/package.json deleted file mode 100644 index 9192ee7a..00000000 --- a/documentation/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "streams", - "version": "0.0.0", - "scripts": { - "start": "iota-wiki start", - "build": "iota-wiki build" - }, - "license": "UNLICENSED", - "engines": { - "node": ">=16.10.0" - }, - "dependencies": { - "raw-loader": "^4.0.2", - "remark-code-import": "^0.3.0", - "remark-import-partial": "^0.0.2" - }, - "devDependencies": { - "@iota-wiki/cli": "latest" - }, - "packageManager": "yarn@3.2.0" -} diff --git a/documentation/sidebars.js b/documentation/sidebars.js deleted file mode 100644 index d299938c..00000000 --- a/documentation/sidebars.js +++ /dev/null @@ -1,74 +0,0 @@ -/** - * * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ - -module.exports = { - docs: [{ - type: 'doc', - id: 'welcome', - }, - { - type: 'doc', - id: 'overview', - }, - { - type: 'doc', - id: 'getting_started', - }, - { - type: 'category', - label: 'Libraries', - collapsed: false, - items: [ - { - type: 'doc', - id: 'libraries/overview', - label: 'Overview', - }, - { - type: 'category', - label: 'Rust', - items: [ - { - type: 'doc', - id: 'libraries/rust/getting_started', - label: 'Getting Started', - }, - { - type: 'doc', - id: 'libraries/rust/examples', - label: 'Examples' - }, - { - type: 'doc', - id: 'libraries/rust/api_reference', - label: 'API Reference' - }, - ] - } - ] - }, - { - type: 'doc', - id: 'specs', - label: 'Specification', - }, - { - type: 'doc', - id: 'troubleshooting', - label: 'Troubleshooting' - }, - { - type: 'doc', - id: 'contribute', - label: 'Contribute', - } - ] -}; diff --git a/documentation/static/.nojekyll b/documentation/static/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/documentation/static/css/custom.css b/documentation/static/css/custom.css deleted file mode 100644 index 4fa4f722..00000000 --- a/documentation/static/css/custom.css +++ /dev/null @@ -1,498 +0,0 @@ - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 100; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-Thin.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-Thin.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 100; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-ThinItalic.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-ThinItalic.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 200; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-ExtraLight.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-ExtraLight.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 200; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-ExtraLightItalic.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-ExtraLightItalic.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 300; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-Light.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-Light.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 300; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-LightItalic.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-LightItalic.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-Regular.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-Regular.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 400; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-Italic.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-Italic.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-Medium.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-Medium.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 500; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-MediumItalic.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-MediumItalic.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-SemiBold.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-SemiBold.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 600; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-SemiBoldItalic.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-SemiBoldItalic.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-Bold.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-Bold.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 700; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-BoldItalic.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-BoldItalic.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 800; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-ExtraBold.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-ExtraBold.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 800; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-ExtraBoldItalic.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-ExtraBoldItalic.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: normal; - font-weight: 900; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-Black.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-Black.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter; - font-style: italic; - font-weight: 900; - font-display: swap; - src: url(https://webassets.iota.org/fonts/inter/Inter-BlackItalic.woff2?v=3.13) format("woff2"), url(https://webassets.iota.org/fonts/inter/Inter-BlackItalic.woff?v=3.13) format("woff") - } - - @font-face { - font-family: Inter var; - font-style: normal; - font-weight: 100 900; - font-display: swap; - font-named-instance: "Regular"; - src: url(https://webassets.iota.org/fonts/inter/Inter-roman.var.woff2?v=3.13) format("woff2") - } - - @font-face { - font-family: Inter var; - font-style: italic; - font-weight: 100 900; - font-display: swap; - font-named-instance: "Italic"; - src: url(https://webassets.iota.org/fonts/inter/Inter-italic.var.woff2?v=3.13) format("woff2") - } - - @font-face { - font-family: Metropolis Regular; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://webassets.iota.org/fonts/metropolis/Metropolis-Regular.woff2?v=11) format("woff2"), url(https://webassets.iota.org/fonts/metropolis/Metropolis-Regular.woff?v=11) format("woff") - } - - @font-face { - font-family: Metropolis Light; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://webassets.iota.org/fonts/metropolis/Metropolis-Light.woff2?v=11) format("woff2"), url(https://webassets.iota.org/fonts/metropolis/Metropolis-Light.woff?v=11) format("woff") - } - - @font-face { - font-family: Metropolis Medium; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://webassets.iota.org/fonts/metropolis/Metropolis-Medium.woff2?v=11) format("woff2"), url(https://webassets.iota.org/fonts/metropolis/Metropolis-Medium.woff?v=11) format("woff") - } - - @font-face { - font-family: Metropolis Semi Bold; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://webassets.iota.org/fonts/metropolis/Metropolis-SemiBold.woff2?v=11) format("woff2"), url(https://webassets.iota.org/fonts/metropolis/Metropolis-SemiBold.woff?v=11) format("woff") - } - - @font-face { - font-family: Metropolis Bold; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://webassets.iota.org/fonts/metropolis/Metropolis-Bold.woff2?v=11) format("woff2"), url(https://webassets.iota.org/fonts/metropolis/Metropolis-Bold.woff?v=11) format("woff") - } - - :root { - --ifm-color-primary: #00E0CA; - --ifm-color-success: #0FC1B7; - --ifm-color-info: #2E8698; - --ifm-color-warning: #e5a23e; - --ifm-color-danger: #e53e3e; - - --ifm-color-primary-dark: color-mod( - var(--ifm-color-primary) shade(var(--ifm-dark-value)) - ); - --ifm-color-primary-darker: color-mod( - var(--ifm-color-primary), - shade(var(--ifm-darker-value)) - ); - --ifm-color-primary-darkest: color-mod( - var(--ifm-color-primary), - shade(var(--ifm-darkest-value)) - ); - --ifm-color-primary-light: color-mod( - var(--ifm-color-primary), - tint(var(--ifm-light-value)) - ); - --ifm-color-primary-lighter: color-mod( - var(--ifm-color-primary), - tint(var(--ifm-lighter-value)) - ); - --ifm-color-primary-lightest: color-mod( - var(--ifm-color-primary), - tint(var(--ifm-lightest-value)) - ); - - --ifm-color-secondary-dark: color-mod( - var(--ifm-color-secondary), - shade(var(--ifm-dark-value)) - ); - --ifm-color-secondary-darker: color-mod( - var(--ifm-color-secondary), - shade(var(--ifm-darker-value)) - ); - --ifm-color-secondary-darkest: color-mod( - var(--ifm-color-secondary), - shade(var(--ifm-darkest-value)) - ); - --ifm-color-secondary-light: color-mod( - var(--ifm-color-secondary), - tint(var(--ifm-light-value)) - ); - --ifm-color-secondary-lighter: color-mod( - var(--ifm-color-secondary), - tint(var(--ifm-lighter-value)) - ); - --ifm-color-secondary-lightest: color-mod( - var(--ifm-color-secondary), - tint(var(--ifm-lightest-value)) - ); - - --ifm-color-success-dark: color-mod( - var(--ifm-color-success), - shade(var(--ifm-dark-value)) - ); - --ifm-color-success-darker: color-mod( - var(--ifm-color-success), - shade(var(--ifm-darker-value)) - ); - --ifm-color-success-darkest: color-mod( - var(--ifm-color-success), - shade(var(--ifm-darkest-value)) - ); - --ifm-color-success-light: color-mod( - var(--ifm-color-success), - tint(var(--ifm-light-value)) - ); - --ifm-color-success-lighter: color-mod( - var(--ifm-color-success), - tint(var(--ifm-lighter-value)) - ); - --ifm-color-success-lightest: color-mod( - var(--ifm-color-success), - tint(var(--ifm-lightest-value)) - ); - - --ifm-color-info-dark: color-mod( - var(--ifm-color-info), - shade(var(--ifm-dark-value)) - ); - --ifm-color-info-darker: color-mod( - var(--ifm-color-info), - shade(var(--ifm-darker-value)) - ); - --ifm-color-info-darkest: color-mod( - var(--ifm-color-info), - shade(var(--ifm-darkest-value)) - ); - --ifm-color-info-light: color-mod( - var(--ifm-color-info), - tint(var(--ifm-light-value)) - ); - --ifm-color-info-lighter: color-mod( - var(--ifm-color-info), - tint(var(--ifm-lighter-value)) - ); - --ifm-color-info-lightest: color-mod( - var(--ifm-color-info), - tint(var(--ifm-lightest-value)) - ); - - --ifm-color-warning-dark: color-mod( - var(--ifm-color-warning), - shade(var(--ifm-dark-value)) - ); - --ifm-color-warning-darker: color-mod( - var(--ifm-color-warning), - shade(var(--ifm-darker-value)) - ); - --ifm-color-warning-darkest: color-mod( - var(--ifm-color-warning), - shade(var(--ifm-darkest-value)) - ); - --ifm-color-warning-light: color-mod( - var(--ifm-color-warning), - tint(var(--ifm-light-value)) - ); - --ifm-color-warning-lighter: color-mod( - var(--ifm-color-warning), - tint(var(--ifm-lighter-value)) - ); - --ifm-color-warning-lightest: color-mod( - var(--ifm-color-warning), - tint(var(--ifm-lightest-value)) - ); - - --ifm-color-danger-dark: color-mod( - var(--ifm-color-danger), - shade(var(--ifm-dark-value)) - ); - --ifm-color-danger-darker: color-mod( - var(--ifm-color-danger), - shade(var(--ifm-darker-value)) - ); - --ifm-color-danger-darkest: color-mod( - var(--ifm-color-danger), - shade(var(--ifm-darkest-value)) - ); - --ifm-color-danger-light: color-mod( - var(--ifm-color-danger), - tint(var(--ifm-light-value)) - ); - --ifm-color-danger-lighter: color-mod( - var(--ifm-color-danger), - tint(var(--ifm-lighter-value)) - ); - --ifm-color-danger-lightest: color-mod( - var(--ifm-color-danger), - tint(var(--ifm-lightest-value)) - ); - - --ifm-color-gray-100: #F6F8FC; - --ifm-color-gray-200: #F2F5FB ; - --ifm-color-gray-300: #EEF2FA; - --ifm-color-gray-400: #CBD2E0; - --ifm-color-gray-500: #A7B3C7; - --ifm-color-gray-600: #8493AD; - --ifm-color-gray-700: #485776; - --ifm-color-gray-800: #131F37; - --ifm-color-gray-900: #0A101C; - - --ifm-hover-overlay: var(--ifm-color-emphasis-200); - - --ifm-font-color-base: var(--ifm-color-emphasis-700); - --ifm-font-family-base: Inter, sans-serif; - --ifm-line-height-base: 1.5; - - --ifm-heading-color: var(--ifm-color-gray-900); - --ifm-heading-font-family: Metropolis Bold; - - --ifm-link-hover-decoration: none; - - --ifm-global-border-width: 2px; - --ifm-global-radius: 0.5rem; - - --ifm-navbar-link-color: #485776; - --ifm-navbar-link-hover-color: var(--ifm-navbar-link-color); - --ifm-navbar-link-active-color: var(--ifm-navbar-link-color); - - --ifm-footer-color: var(--ifm-navbar-link-color); - --ifm-navbar-padding-horizontal: 25px; - --ifm-navbar-padding-vertical: 18px; - --ifm-navbar-height: 68px; - - --ifm-menu-color: var(--ifm-color-emphasis-600); - --ifm-menu-color-active: var(--ifm-color-emphasis-1000); - --ifm-menu-color-background-active: transparent; - - --ifm-button-color: white; - } - - html[data-theme='dark'] { - --ifm-background-color: var(--ifm-color-emphasis-200); - --ifm-background-surface-color: var(--ifm-color-emphasis-200); - - --ifm-navbar-link-color: #B0BFD9; - - --ifm-menu-color-background-hover: var(--ifm-color-emphasis-300); - - --ifm-footer-background-color: var(--ifm-color-emphasis-200); - --ifm-card-background-color:#293858; - - --ifm-heading-color: inherit; - - --ifm-hover-overlay: var(--ifm-color-emphasis-200); - } - - .alert h1, - .alert h2, - .alert h3, - .alert h4, - .alert h5, - .alert h6, - .hero h1, - .hero h2, - .hero h3, - .hero h4, - .hero h5, - .hero h6 { - color: inherit; - } - - .navbar { - font-family: 'Metropolis Medium'; - line-height: 1.25rem; - font-weight: 400; - } - - .navbar__items--right > * { - margin-left: 2rem; - } - - .navbar__brand { - height: 25px; - } - - .navbar__link--active { - font-weight: bold; - } - - .section-header { - font-family: 'Metropolis Semi Bold'; - font-size: 1.25em; - letter-spacing: 0.04em; - } - - .footer { - font-size: 80%; - } - - .footer__bottom { - display: flex; - align-items: flex-end; - flex-wrap: wrap; - } - - .footer__logo { - height: 3rem; - margin-right: 2em; - margin-bottom: -1em; - } - - .footer__copyright { - margin-top: 1em; - } - - ::selection { - background-color: #b3d4fc; - color: #000; - text-shadow: none; - } - - .grey { - color: var(--ifm-navbar-link-color); - } - - .headline-stick { - height: 4px; - background-color: var(--ifm-color-primary); - margin-bottom: 1.25rem; - width: 16px; - transition: all var(--ifm-transition-fast) var(--ifm-transition-timing-default); - } - - .headline-stick.size-s { - width: 32px; - } - - .headline-stick.size-m { - width: 48px; - } \ No newline at end of file diff --git a/documentation/static/img/bg-2ab9b09901d67717ad0179ee92d7a3c1.svg b/documentation/static/img/bg-2ab9b09901d67717ad0179ee92d7a3c1.svg deleted file mode 100644 index 124ccda2..00000000 --- a/documentation/static/img/bg-2ab9b09901d67717ad0179ee92d7a3c1.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/documentation/static/img/bg.svg b/documentation/static/img/bg.svg deleted file mode 100644 index 124ccda2..00000000 --- a/documentation/static/img/bg.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/documentation/static/img/iota_logo.svg b/documentation/static/img/iota_logo.svg deleted file mode 100644 index 61151245..00000000 --- a/documentation/static/img/iota_logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/documentation/static/img/libraries.png b/documentation/static/img/libraries.png deleted file mode 100644 index 002b405e..00000000 Binary files a/documentation/static/img/libraries.png and /dev/null differ diff --git a/documentation/static/img/libraries/accounts_addresses.svg b/documentation/static/img/libraries/accounts_addresses.svg deleted file mode 100644 index 961455d5..00000000 --- a/documentation/static/img/libraries/accounts_addresses.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/documentation/static/img/libraries/screenshot_faucet.png b/documentation/static/img/libraries/screenshot_faucet.png deleted file mode 100644 index c1790c34..00000000 Binary files a/documentation/static/img/libraries/screenshot_faucet.png and /dev/null differ diff --git a/documentation/static/img/logo/Logo_Swirl_Dark.png b/documentation/static/img/logo/Logo_Swirl_Dark.png deleted file mode 100644 index b10c0e31..00000000 Binary files a/documentation/static/img/logo/Logo_Swirl_Dark.png and /dev/null differ diff --git a/documentation/static/img/logo/favicon.ico b/documentation/static/img/logo/favicon.ico deleted file mode 100644 index 8599d213..00000000 Binary files a/documentation/static/img/logo/favicon.ico and /dev/null differ diff --git a/documentation/static/img/overview/layered_overview.svg b/documentation/static/img/overview/layered_overview.svg deleted file mode 100644 index f6a65cb3..00000000 --- a/documentation/static/img/overview/layered_overview.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/documentation/static/img/specs/erdIOTA.svg b/documentation/static/img/specs/erdIOTA.svg deleted file mode 100644 index 2a17a6a3..00000000 --- a/documentation/static/img/specs/erdIOTA.svg +++ /dev/null @@ -1,485 +0,0 @@ - - - - - - - erdIOTA - - - A - A - cc - cc - ou - ou - n - n - t - t - - A - A - cc - cc - ou - ou - n - n - tID: - tID: - v - v - a - a - r - r - char(255) - char(255) - P - r - o - vide - r - : - v - a - r - char(255) - I - nd - e - x: i - n - t - A - lias: - v - a - r - char(255) - P - o - w - : - v - a - r - char(255) - Q - uorumSi - z - e: i - n - t - Q - ue - r - o - m - T - h - r - eshold: i - n - t - Ne - t - w - o - r - k - : - v - a - r - char(255) - T - ype: - v - a - r - char(255) - C - r - e - a - t - ed - A - t: D - a - t - e - Upd - a - t - ed - A - t: D - a - t - e - - - A - A - cc - cc - ou - ou - n - n - t_ - t_ - T - T - r - r - ansa - ansa - c - c - tions - tions - - - - A - A - cc - cc - ou - ou - n - n - t_Nodes - t_Nodes - - - - A - A - dd - dd - r - r - ess - ess - - A - A - dd - dd - r - r - ess: - ess: - v - v - a - a - r - r - char(255) - char(255) - I - nd - e - x: i - n - t - Checksum: - v - a - r - char(255) - Balan - c - e: i - n - t - - - Node - Node - - NodeId: - NodeId: - v - v - a - a - r - r - char(255) - char(255) - U - r - l: - v - a - r - char(255) - P - o - w - : - v - a - r - char(255) - U - se - r - name: - v - a - r - char(255) - P - ass - w - o - r - d: : - v - a - r - char(255) - Ne - t - w - o - r - k - : : - v - a - r - char(255) - - - T - T - r - r - ansa - ansa - c - c - tion - tion - - Hash: - Hash: - v - v - a - a - r - r - char(255) - char(255) - Si - g - n - a - tu - r - e - M - essage - F - r - a - g - me - n - t: - v - a - r - char(255) - A - dd - r - ess: - v - a - r - char(255) - V - alue: i - n - t - T - ag: - v - a - r - char(255) - T - imestamp: D - a - t - e - C - u - r - r - e - n - t - I - nd - e - x: i - n - t - Last - I - nd - e - x: i - n - t - BundleHash: - v - a - r - char(255) - T - run - k - T - r - ansa - c - tion: - v - a - r - char(255) - B - r - anc - h - T - r - ansa - c - tion: - v - a - r - char(255) - Non - c - e: - v - a - r - char(255) - C - onfi - r - med: boolean - B - r - oadcas - t - ed: boolean - - - - - - - - - - - - - - - - - - - - - - - - - - A - cc - ou - n - tID: i - n - t - A - cc - ou - n - tID: - v - a - r - char(255) - NodeID: - v - a - r - char(255) - A - cc - ou - n - tID: - v - a - r - char(255) - Hash: - v - a - r - char(255) - -