Ockam is a collection of tools to help you establish secure connections and trustful exchange of information within connected systems.
To understand the key ideas behind Ockam, please read our short concept papers of on:
- Why we're focusing on the connectivity and messaging layer?
- What exactly does trust mean within connected systems?
- What are the minimum criteria for establishing trust?
Ockam's core features include:
-
Decentralized Identifiers: Cryptographically provable, decentralized identifiers (DIDs) for each device to ensure data integrity and protect against identity spoofing.
-
Device And Service Registry: Ockam Blockchain based registry for discovering public keys, protocols, endpoints and other metadata about a device or a service.
-
Hardware Vault And Cryptography: Safely store private keys and credentials in hardware and easily leverage cryptographic modules or enclaves to sign device or service generated data.
-
Key And Credential Management: Easily setup, rotate, revoke keys and other credentials without complex and brittle PKI.
-
Trustful Communication: Use Verifiable Credentials and Peer-to-peer Mutual Authentication to establish trust: device-to-device or device-to-service.
-
End-To-End Encrypted Messaging: Secure, efficient and scalable end-to-end encrypted messaging to protect against tampering, replay, snooping and man-in-the-middle attacks.
-
Trusted Twins: Cloud based, persistent, mutually trusted twin of each device so applications can interact with device state and enqueue messages even when a device is offline.
-
Ockam Blockchain Network: A fast finality, safety favouring, light client friendly, and horizontally scalable blockchain network that is optimized for connected devices.
This repository includes a Golang package that can be used to build Go programs (device firmware or a backend service) that act as light nodes on the Ockam Blockchain Network.
With Go version 1.11+
installed, add the ockam Golang package to your project using go get
:
go get github.com/ockam-network/ockam
Once you have the ockam
package, copy an example from the example directory and run it using go run
.
go run example/01_hello_ockam.go
- Ask a question
- Report an issue or a bug
- Share an idea for a new feature
- Contribute Code
- Code of Conduct
- Brian Schroeder
- Brett Nitschke
- Carlos Flores
- Jeff Malnick
- Logan Jager
- Matthew Gregory
- Mrinal Wadhwa
- Rolf Kaiser
This code is licensed under the terms of the Apache License 2.0
This code depends on other open source packages; attributions for those packages are in the NOTICE file.