Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

🌏 🆔 Decentralized Identity

License

NotificationsYou must be signed in to change notification settings

poga/hyperidentity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌏🆔  Decentralized Identity

stability-experimentalNPM VersionJavaScript Style Guide

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

npm i -g hyperidentity

Table of Contents

Usage

You can use Hyperidentity from CLI:

  • Create an identity at./me:
$ hi init me56d0a72488190d37aaa28447a5600eafe67df00bf89ab646def449c17e331a56 // 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 outtest/signup.js,test/service.js, andexample 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 ahyperdrive 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 forid for the following purpose:

  1. verify user really own the ID(archive)
  2. give user a service-owned archive tolink 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. linkarchiveKey at.links/${service.publicKey}

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

Check whetherid accepted the link token fromservice.

Architecture

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

In hyperidentity, we use a p2p hypermedia protocol calledDat 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 asvendor lock-in andsingle-point-of-failure.

However, it's very limiting if the web services can never write their own data. To solve the problem, hyperidentity usedecentralized-symlink to link your identity to an archive hosted by the web service. By merging two archive together, hyperidentity becomes andecentralized 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

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp