All Projects → poga → Hyperidentity

poga / Hyperidentity

Licence: mit
🌏 🆔 Decentralized Identity

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Hyperidentity

Unstoppable Wallet Android
A secure and decentralized Bitcoin and other cryptocurrency wallet for Android phones. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 165 (+129.17%)
Mutual labels:  decentralization, decentralized
blockstack-browser
The Blockstack Browser
Stars: ✭ 1,130 (+1469.44%)
Mutual labels:  identity, decentralized
Unstoppable Wallet Ios
A secure and decentralized Bitcoin and other cryptocurrency wallet for iPhone. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 180 (+150%)
Mutual labels:  decentralization, decentralized
Adamant Im
ADAMANT Decentralized Messenger. Progressive Web Application (PWA)
Stars: ✭ 202 (+180.56%)
Mutual labels:  decentralization, decentralized
ethereum-dex
Decentralized exchange implementation for the 0xcert protocol on the Ethereum blockchain.
Stars: ✭ 18 (-75%)
Mutual labels:  decentralized, decentralization
Stacks Blockchain
The Stacks 2.0 blockchain implementation
Stars: ✭ 2,549 (+3440.28%)
Mutual labels:  identity, decentralized
prometheus-spec
Censorship-resistant trustless protocols for smart contract, generic & high-load computing & machine learning on top of Bitcoin
Stars: ✭ 24 (-66.67%)
Mutual labels:  decentralized, decentralization
Brightid
Reference mobile app for BrightID
Stars: ✭ 101 (+40.28%)
Mutual labels:  identity, decentralized
alternative-frontends
🔐🌐 Privacy-respecting web frontends for popular services
Stars: ✭ 821 (+1040.28%)
Mutual labels:  decentralized, decentralization
superhighway84
USENET-inspired, uncensorable, decentralized internet discussion system running on IPFS & OrbitDB
Stars: ✭ 437 (+506.94%)
Mutual labels:  decentralized, decentralization
swarm-cli
Manage your Bee node and interact with the Swarm network via the CLI
Stars: ✭ 36 (-50%)
Mutual labels:  identity, decentralized
Ethlist
The Comprehensive Ethereum Reading List
Stars: ✭ 3,576 (+4866.67%)
Mutual labels:  decentralization, decentralized
syscoin
Syscoin is a crypto currency that is universally merge-mineable and offers a unique variety of services including decentralized identities, asset token issuance platform capabilities directly on the blockchain and trustless 0-counterparty interoptibility with the Ethereum blockchain
Stars: ✭ 152 (+111.11%)
Mutual labels:  identity, decentralized
Blockstack Browser
The Blockstack Browser
Stars: ✭ 1,119 (+1454.17%)
Mutual labels:  identity, decentralized
Ravendb.identity
RavenDB Identity provider for ASP.NET Core. Let RavenDB manage your users and logins.
Stars: ✭ 50 (-30.56%)
Mutual labels:  identity
Mobidex
Mobile trustless trading through Uniswap
Stars: ✭ 61 (-15.28%)
Mutual labels:  decentralized
Pocket Core
Official implementation of the Pocket Network Protocol
Stars: ✭ 50 (-30.56%)
Mutual labels:  decentralized
Smartpool Client
SmartPool client of SmartPool project
Stars: ✭ 49 (-31.94%)
Mutual labels:  decentralization
Covenantsql
A decentralized, trusted, high performance, SQL database with blockchain features
Stars: ✭ 1,148 (+1494.44%)
Mutual labels:  decentralized
Spruce Network
Decentralized peer-to-peer mesh network.
Stars: ✭ 61 (-15.28%)
Mutual labels:  decentralized

Hyperidentity

🌏🆔  Decentralized Identity

stability-experimental NPM Version JavaScript Style Guide

Hyperidentity tried to solve the core problem of centralized web services: vendor lock-in, data-ownership, and single-point-of-failure.

npm i -g hyperidentity

Table of Contents

Usage

You can use Hyperidentity from CLI:

  • Create an identity at ./me:
$ hi init me
56d0a72488190d37aaa28447a5600eafe67df00bf89ab646def449c17e331a56 // your identity key
  • Login to a service:
$ hi login me token
  • show a list of services you've logged-in and your identity key
$ hi info me
  • bring your identity online:
$ hi up me

API

check out test/signup.js, test/service.js, and example to see how to implement a web service accepting hyperidentity.

Identity

An identity is a user with the data he/she want to share with the service. It can also replicate data generated by web services.

var identity = require('hyperidentity').identity

id = identity(archive)

Create a new identity with a hyperdrive archive.

id.archive

The archive used by this ID.

id.setMeta(meta, cb)

Set metadata of the ID

id.getMeta(cb)

Get metadata of the ID

token = id.serviceLinkToken(service, archiveKey)

Create a link token for id for the following purpose:

  1. verify user really own the ID(archive)
  2. give user a service-owned archive to link to its ID.

service is a hyperservice instance.

Returns a token string.

id.acceptLinkToken(token, cb(err))

Accept a link token. Under the hood, this will:

  1. write a response to .proofs/${service.publicKey}
  2. link archiveKey at .links/${service.publicKey}

id.verifyAcceptingness(service, cb(err, verified))

Check whether id accepted the link token from service.

Architecture

Hyperidentity use a hybrid architecture between fully decentralized web and traditional web service.

In hyperidentity, we use a p2p hypermedia protocol called Dat to store the most important thing on the web: the data you've created.

Modern web application is all about creating and sharing data in a scalable way. The Dat protocol allows us to both control our data and share it to the web service we trust. Each web service can have their own peer to replicate your data, or just use existing peers as backend. Since all peers have the same data and only you, as the host, can update the data being shared, it avoids problems such as vendor lock-in and single-point-of-failure.

However, it's very limiting if the web services can never write their own data. To solve the problem, hyperidentity use decentralized-symlink to link your identity to an archive hosted by the web service. By merging two archive together, hyperidentity becomes an decentralized eventually-consistent storage.

Since the service-hosted archive is also publicly replicated between you and the web services, you can save or fork the archive whenever backup or data-migration is needed.

License

The MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].