Fully Autonomous Data Network
Autonomi can be seen as a secure, encrypted, intelligent layer that sits on top of the current Internet, complementing the top three layers in the OSI model and adding resources in the application layer.
Going a little deeper, Autonomi introduces some changes to the networking and application layers as shown below.
![](https://docs.autonomi.com/~gitbook/image?url=https%3A%2F%2F2892279800-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FT1VY0u5KuOsTpycHpSka%252Fuploads%252Fh1fLei3ZnhJDUI1K40ST%252FNetwork%2520Layers%2520%2526%2520Autonomi.png%3Falt%3Dmedia%26token%3D47258691-13d3-4bf1-89f8-6cb7388fc6ee&width=768&dpr=4&quality=100&sign=18c63f6b&sv=1)
Many features of Autonomi are genuine innovations, but there is no intention to reinvent the wheel. It builds on existing decentralized technologies such as Kademlia and libp2p and is based on the physical and data infrastructure of the Internet. Early development of Autonomi (formerly the SAFE Network) happened in parallel with blockchain, but it has taken an alternative route to solve the decentralization puzzle.
Autonomi can be seen as a secure, encrypted, intelligent layer that sits on top of the current Internet, complementing the top three layers in the OSI model and adding resources in the application layer. This enables secure, anonymous, decentralized data storage and networking.
Its core libraries are written in the Rust programming language. The diagram below shows the basic hierarchy.
![](https://docs.autonomi.com/~gitbook/image?url=https%3A%2F%2F2892279800-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FT1VY0u5KuOsTpycHpSka%252Fuploads%252FrGGIsaDBWJes5TsqsRV5%252Fimage.png%3Falt%3Dmedia%26token%3D05d461ad-69d6-41a9-a90e-209e91c24886&width=768&dpr=4&quality=100&sign=bd411dec&sv=1)
In order to guarantee strong consistency, the Network uses conflict-free replicated data types (CRDTs) for storing data.
Client connections managed by libp2p are mediated via the client API. There is a command line interface (CLI) for this purpose, and apps written in Rust can access network functions directly via the API. Apps written in other languages do the same via the language bindings layer.
Nodes and clients provide the main means for users to interact with the Network, either by providing resources in return for payment by running a node or by storing data and interacting with data as a client.
Last updated