Jump to: navigation, search

Personal Namespace

DEPRECATED

This protocol or feature has been deprecated in favor of Identity namespace



Convert to an NEP after NEP protocol is resolved.

Personal Namespace

The Personal Namespace is p/

The purpose of p/ is to "include a personal handle namespace mapping handles to public keys and personal address data."[1]


Format

  • Raw format
  • JSON format


"i" - identity name

PGP

Mapping OpenPGP[2] Message Headers/Footers into Namecoin:

namecoin openPGP header/footer notes
PGPK
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: Namecoin-Test 0.0.1 
 
(ASCII armored public key)
-----END PGP PUBLIC KEY BLOCK-----
{
  "PGPK":"(the ASCII armored public key)"
}

Example: p/example on testnet

PGPM
-----BEGIN PGP MESSAGE-----
Version: Namecoin-Test 0.0.1 
 
(ASCII armored message)
-----END PGP MESSAGE-----
for creating secure messages
{
  "PGPM":"(ASCII armored message)"
}
PGPS
-----BEGIN PGP SIGNATURE-----
Version: Namecoin-Test 0.0.1 
 
(ASCII armored signature)
-----END PGP SIGNATURE-----
{
  "PGS":"(the ASCII armored signature)"
}
PGPM-X-Y
-----BEGIN PGP MESSAGE, PART X/Y-----
Version: Namecoin-Test 0.0.1 
 
(ASCII armored message part)
-----END PGP MESSAGE, PART X/Y-----
{
  "PGM-1-2":"(the ASCII armored message part)"
}
PGPM-X
-----BEGIN PGP MESSAGE, PART X-----
Version: Namecoin-Test 0.0.1 
MessageID: 32-character-string-ID
 
(ASCII armored message part)
-----END PGP MESSAGE, PART X-----
Requires the MESSAGE-ID Armor Header
{
  "PGM-2":"(the ASCII armored message part)",
  "mID":"32-character string of printable characters"
}



Large Keys

Many keys are too large to fit in the block chain. The following format may be used to link to a large key.

namecoin description Example
v Data format version. Currently, there is only one version.
{
  "v":"pka1"
}
fpr OpenPGP fingerprint
{
  "fpr":"0123456789012345678901234567890123456789"
}
uri URI where the key can be obtained
{
  "uri":"http://www.example.com/user.key"
}

Example: Data Format

{"v":"pka1","fpr":"0123456789abcde0123456789abcde0123456789","uri":"http://www.example.com/user.key"}

Example: Importing a key to GnuPG

Search for someone's "p/<name>" name using namecoin

shell$ namecoind name_list p/<name> 1
[
    {
        "name" : "p/<name>",
        "value" : "{\"v\":\"pka1\",\"fpr\":\"0123456789abcde0123456789abcde0123456789\",\"uri\":\"http://www.example.com/user.key\"}",
        "txid" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "expires_in" : 11234
    }
]

Import the key into gpg

shell$ wget -pO - http://www.example.com/user.key | gpg --import
gpg: key xxxxxxxx: public key "p/<name>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Verify the fingerprint matches

shell$ gpg --fingerprint p/<name> 
pub   4096R/xxxxxxxx 2011-06-23 [expires: 2013-06-22]
      Key fingerprint = 0123 4567 89ab cde0 1234  5678 9abc de01 2345 6789
uid                  p/<name>
sub   4096R/xxxxxxxx 2011-06-23 [expires: 2013-06-22]
shell$ 


Notes

How about space for a BTC receiving address?