Git Product home page Git Product logo

dmap's Introduction

dmap

  • dmap is a universal namespace defined by part of the Ethereum chain state.
  • dmap <dpath> gets the 32-byte value at the given path.
  • dpath is the path format and mini-language used by dmap.
  • dpath is future-proof and extensible.

Try it now:

npm install -g dmap-cmd

dmap .x.ample.        # Query
dmap walk .x.ample.   # Details

Quickstart on .x.: dmap .x.your-name.

If you want a valuable name, you should make a valuable namespace.

Examples

> dmap .x.
0x180513ff7459ebc79534d3cb8ac26a5a1ac8af0d

> dmap .x.ample.
0xdbb5fbdfdf8f2f87f94f28cbd3cacf3ad28cfda6

> dmap walk .x.ample.
walk .x.ample.
step .x.ample.
step read .x.ample.
step read -r 0x20d20820f5d4D310281533CD9154C1bE22D6e195 .x.ample.
     0x180513ff7459ebc79534d3cb8ac26a5a1ac8af0d000000000000000000000000
step read -r 0x180513ff7459ebc79534d3cb8ac26a5a1ac8af0d .ample.
     0xdbb5fbdfdf8f2f87f94f28cbd3cacf3ad28cfda6000000000000000000000000
step read -r 0xdbb5fbdfdf8f2f87f94f28cbd3cacf3ad28cfda6 .
DONE 0xdbb5fbdfdf8f2f87f94f28cbd3cacf3ad28cfda6

Use Cases

Our goal is to make dmap usable for the following initial use cases as quickly as possible.

  • Package integrity check
  • GUI integrity check
  • Key signing / WoT bootstrapping

Any time you sign an update to a "named something", you could be signing it with a multisig or any other smart contract.

Development Notes

  • At its core, this project is about dpath semantics.
  • Version 0.0.x has an unstable API. Version 0.1.0 will have a stable read and walk API for paths containing only . runes (separators).
  • dmap command line commands define a query language. dmap libraries should implement dmap("walk .x.ample.path"). first and .walk().x.ample.path() helper methods second.
  • We expect other implementations to be forks of Ethereum light clients optimized for dmap queries.
git clone https://github.com/dufolt/dmap
cd dmap
make

or

git clone keybase://team/dmap/dmap
cd dmap
make

Example paths to study

Active

.             the dmap
.d.           the dmap
.x.           xreg, the worst registry (is DMap, owner is XReg)
.x.ample.     example paths for docs
.x.dmap.      the dmap

Future

:x:ample:definitly-locked  
:x:ample.possibly-mutable 
.x.ample#ipld
.x.foo@.
.x.foo@@@.
.x.foo%bar.

Agenda

  • dmap type-info by path, by address
  • . rune
  • : rune
  • source bootstrap (git hash on chain, dmap update verifies it before linking)
  • ^ rune

dmap's People

Contributors

dufolt avatar nmushegian avatar

Stargazers

 avatar  avatar  avatar  avatar

dmap's Issues

Source Bootstrapping Discussion

Suppose .meta.code.latest.git contains a trusted commit hash. How do you use it to obtain a trusted installation? How do you trust your local implementation of dmap, ipfs, etc (or worse, git and shasum and the rest of the toolchain)?

dmap type-abi XReg should be xreg

The quickstart.md guide says to use dmap type-abi XReg but dmap type-abi xreg returns an ABI.

ames@shelf4:~/dmap$ dmap type-abi XReg
james@shelf4:~/dmap$ dmap type-abi xreg
[{"constant":true,"inputs":[],"name":"x","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"key","type":"bytes32"},{"name":"val","type":"bytes32"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"}],"name":"newChild","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
james@shelf4:~/dmap$

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.