Skip to content
This repository was archived by the owner on Jun 28, 2023. It is now read-only.
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions 0.0 Preface.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ A final point to note is that these specifications are not stable nor are they s

Specifically, we will:
- Optimize parameters
- Improve the software implementations of the protocol in conjunction with developing the Bee and Hornet nodes
- Improve the software implementations of the protocol in conjunction with developing the Hornet node
- Identify and remove any potential performance bottlenecks
- Optimize the performance of each module
- Simplify the protocol by eliminating any elements which are found to be unnecessary.
Expand All @@ -58,6 +58,6 @@ Also, since Nectar is a prototype, a few shortcuts were taken in the implementat

A protocol is an agreement between several nodes on how to exchange and interpret data. The implementation of the protocol is the software that performs the actual operations dictated by the protocol. The protocol is unique and fixed, while the implementation varies. For example, HTTP (HyperText Transfer Protocol) dictates how your browser should communicate with internet servers. There are several browsers (Firefox, Chrome, Safari, etc.) which run this protocol. Internally, these browsers work very differently from each other, having different features and designs, but they all communicate with a server in the same way.

IOTA 2.0 is a standardized protocol, and thus will have special protocol specifications dictating how IOTA nodes must behave. The IOTA Foundation will create two software implementations of this protocol: Bee and Hornet, written in rust and go respectively. However, each of these implementations will have implementation specifications which describe exactly how the software works. Using the protocol specifications, anybody can (and hopefully eventually will) write their own software implementations with their own implementation specifications.
IOTA 2.0 is a standardized protocol, and thus will have special protocol specifications dictating how IOTA nodes must behave. The IOTA Foundation will create awo software implementation of this protocol: Hornet, written go. However, this implementations will have implementation specifications which describe exactly how the software works. Using the protocol specifications, anybody can (and hopefully eventually will) write their own software implementations with their own implementation specifications.

These research specifications are a mix of both the protocol specifications and the implementation specifications. Why is this the case? Because all of our ideas must be tested in code, we have to develop the protocol and an implementation of the protocol at the same time. Any ideas which cannot be efficiently implemented have to be rejected. Now that we have a working prototype, we can begin separating the protocol from these specifications while the engineering department works on the implementation.