Giter Club home page Giter Club logo

stacks's People

Contributors

andrerserrano avatar clintnelsen avatar criadoperez avatar cwackerfuss avatar dantrevino avatar dionyziz avatar diwakergupta avatar elimisteve avatar fpbgg avatar ginaabrams avatar guylepage3 avatar hunterlester avatar jackzampolin avatar jcnelson avatar john-light avatar kantai avatar kenrogers avatar larrysalibra avatar lizblockstack avatar muneeb-ali avatar papacrypt avatar pstan26 avatar rubinovitz avatar shea256 avatar stemby avatar tthsn avatar vsund avatar wileyj avatar yknl avatar zan-kusterle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stacks's Issues

Internationalization & Localization

I hope that Blockstack can be used globally and not just limited to English speaking world. I'm opening this ticket to start a discussion about how the spec and movement can accommodate that.

Namespace:

Many (most?) Internet users don't use the latin alphabet. Should we force someone who's name is 李兆京 (me!) to pick a romanized version of his name? Seems culturally insensitive. DNS was ascii only because of various historical reasons. We don't have the same excuse.

Multiple languages:

Many people live their lives in a multilingual environment. New immigrants in the US often have family and friend in their original country with him they interact in one language and new friends in the US they interact with in English. In places like Hong Kong (where I live), most people have two legal names: a Chinese name and an English name. In Europe, many people have friends across the continent with whom they communicate with English and family and friends in their country of residence who may only read and write the local language.

We could either:

  1. Tell these people to create a separate openname for each language.
  2. Allow people to have language specific entries for free form fields: (Name, Location, Bio, etc)

For names: Twitter takes the first approach. Facebook takes the latter. I would prefer the latter as well. https://www.facebook.com/help/217868321565724

Branding & communications

A name & message that translates well across linguistic and cultural borders. (Will also bring this up in #41)

Love to hear what everyone else thinks!

Proposed renaming of Openname

I'd like to propose the idea of renaming the "openname" protocol as I feel there is a fundamental communication issue with the naming convention. I feel there is a better way, a more descriptive way, to communicate the protocol. A clearly identifiable name that developers and users alike will grasp.

A few services built on top of openname, like Onename (the company I work for), have used terms like "digital passport" in their communications. I actually think digital passport very aptly describes the account/profile that users get when they register as a user on the protocol.

For this reason, I'd like to explore the idea of renaming the protocol from openname to digital passport. This is a clear, descriptive name that everyone can identify with. The word "passport" is one of the most common forms of identification and is easy for everyone to visualize without putting any thought into it. And since the passport (identification) is a virtual form of ID it's only natural to call it a "digital" passport.

We have been sharing this new concept with others in the community over the past month or so in order to get other's feedback and the idea has been well received. The concepts "passport" and "digital passport" are very clear to all of the users that we've spoken to. Conversely, the concept of an "openname" usually takes some time to communicate. Users are very likely to ask, "what is openname?"

From a marketing/communications point of view I could see users adopting, "I have a digital passport." As opposed to, "I have an openname username." Another point to be made is that users mostly used the word "openname" to refer to the "username". So what do you get when you register on the system? Well, you get a "digital passport" i.e., your profile. By using the term "digital passport," it gives the user visual recognition that they can identify as a tangible object in their mind. Something one owns and holds onto for life.

I hope everyone will consider this change for, what I feel is, the better of the protocol and the community.

Cheers, Guy

What format record in blockchain ?

What format record in blockchain ,so blockstore can read out them from coin's blockchain ?
OP_RETURN /u/name:lizhi
Can you give me help informations ?

Using already existing schemas for user

I think instead of re-inventing a new schema, we should use exist Linked data schemas, FOAF for example or Person from schema.org. In this way ons can integrate with cool new features of the web (the new coming WebID for example).

It doesn't have to be RDF, you can still use JSON, with the "@context" field, so it is a JSON-LD.

In other words, switching your existing schema into an already existing open format takes little and it will have a huge potential.

Additional room in the profile json for messenger address.

I'm working on an anonymous messaging client that uses the openname profile as a way to make the UX more personable (formatted names/avatars etc). The sender can enter his openname and it triggers the recipient's client to download the profile json and avatar. But at present there is no way to validate that the sender is the actual owner of the openname.

What I need is for the sender to put his address in his profile so the recipient can verify the address in the profile matches the address from which the message was sent.

The "public key" field would likely be fine, unless you guys think a separate field for "messengers" would be needed.

But I would need a way to enter it via the website since it's too much work to manually make a broadcast a namecoin tx.

Won't start after reboot.

I just started looking at blockstack last night. I installed it from the instructions on https://blockstack.org/docs/installation on a fairly clean ubuntu-based VM. Today, after rebooting the next time, when I tried to run it, I ran into errors with being unable to find python modules (bitcoin was the particular one it couldn't find). I reinstalled the bitcoin module with pip and now it complains about not finding bitmerchant.wallet. So I reinstalled bitmerchant with pip, but it still can't find it. I'm not a regular python user, so I'm not sure if this is a python configuration problem or what. I haven't done anything to customize my python install. I've tried reinstalling pip, bitcoin, bitmerchant, and blockstack, but this error won't go away:

dennis@ubuntu:~$ blockstack info
Traceback (most recent call last):
  File "/usr/local/bin/blockstack", line 34, in <module>
    from blockstore_client.blockstore_cli import run_cli, exit_with_error
  File "/usr/local/lib/python2.7/dist-packages/blockstore_client/__init__.py", line 24, in <module>
    import client
  File "/usr/local/lib/python2.7/dist-packages/blockstore_client/client.py", line 37, in <module>
    import parsing, schemas, storage, drivers, config, spv, utils
  File "/usr/local/lib/python2.7/dist-packages/blockstore_client/schemas.py", line 26, in <module>
    from pybitcoin.formatcheck import is_b58check_address
  File "/usr/local/lib/python2.7/dist-packages/pybitcoin/__init__.py", line 46, in <module>
    from keychain import PrivateKeychain, PublicKeychain
  File "/usr/local/lib/python2.7/dist-packages/keychain/__init__.py", line 1, in <module>
    from .private_keychain import PrivateKeychain
  File "/usr/local/lib/python2.7/dist-packages/keychain/private_keychain.py", line 1, in <module>
    from bitmerchant.wallet import Wallet as HDWallet
ImportError: No module named wallet

How do I fix this?

Improvements to "location" section

Quoted suggestion from @justusranvier:

Location

The location field is used to associate a geographical location with their Namecoin identity.

Defined types of the Location array:

  • Home
  • Business

Defined attributes for the Location array:

  • country
  • region
  • locality
  • street
  • postal code
  • permanent
  • temporary

Possible conflict with onename Explorer and QT(my fault)

I had transferred the name to new a address. So I have a feeling I screwed things up here somehow by making a change through he profile explorer after transferring the name to a new address.

Now only changes through the profile explorer take effect. I still show I own the name under Managed Names with QT but no changes take effect with QT now. They did before I made a change through the profile explorer.

Any thoughts on how to straighten this out?

EDIT: I've gone ahead and transferred the name back to the original address and then I'll see if that has any effect....

I know this is all my fault but I am confused about how or why onename was able to take back control of the name when I logged in with the onename profile explorer.

Blockstack Rename Operation

I propose that we add a rename operation to the Blockstack core instruction set.

This would allow us to have a user's serial number travel from one name to another, thus providing continuity of identity across names.

The API interface could look like this:

Lookup by ID

Endpoint

GET /v2/identity/<serial-number>

Example Request

GET /v2/identity/392782-492

Example Response
{
  "serial_number": "392782-492",
  "domain_name": "judecn.id",
  "zone_file": "",
  "owner_address”: ""
}

Lookup by Name

Endpoint

GET /v2/identity/<domain-name>

Example Request

GET /v2/identity/judecn.id

Example Response
{

  "serial_number": "392782-492",
  "domain_name": "judecn.id",
  "zone_file": "",
  "owner_address”: ""
}

Rename

Endpoint

POST /v2/identity/<domain-name>

Example Request

POST /v2/identity/judecn.id
PAYLOAD: <transaction with OP_RETURN data that specifies a renaming of judecn.id to jude.id>

Example Response
{
  "previous_name": "judecn.id",
  "new_name": "jude.id"
}

Tagging @muneeb-ali @jcnelson for comments.

Whats the point of a registrar?

In the wiki, it suggests a user go to a registrar to register his name. Is a registrar a trusted third party? In which case, this scheme is as bad as DNS but just less popular.

If the goal is to truly decentralize ownership of identity, there should be no third party.

Can the user simply publish his identity on to the blockchain (using a browser plugin or script for example) and have it verifiable by others?

Proofs & Next in v0.3

I like the approach it is taking is v0.3 is taking.

Quick question. Something that isn't obvious in the v0.3 spec. How would proofs like like? Similar to v0.2?

"profiles": [{
"username": "naval", "type": "twitter", "proof": {"url": }
}],

I assume it will be similar?

Then. Considering the "i/" namespace which is where you "overflow" to if it gets too big. Currently, it just adds the rest of the information there. But with v0.3, should it have the same structure (at the behest of taking up more space?)

What are your plans with this?

I'm thinking, in the next i namespace, take out basics, and then keep the same structure. Additional profiles is also under the profiles key. Additional payments, under the payments key and so forth? If there is no additional fields, then it is not simply there? And what are plans on extending it into the future?

Let's say someone adds 20 payments (for 20 altcoins), will it fill up the space i-1 and then move onto i-2? And let's say i-1 gets full, and they add a new profile (from 2 to 3 profiles), does it modify i-1 to take out a payment field and push that payment field to i-2, or does it keep i-1 full (less operations), and put that profile field in i-2 (meaning there are thus profiles in 'u' and 'i-2', not 'i-1')?

Am I explaining it properly?

Create arrays for asynchronous and synchronous communication methods

Quoted suggestion frrom @justusranvier:

Asynchronous

Asynchronous communication methods are anything where the recipient and sender do not need to be online at the same time. Basically this means email and everything that behaves like email.

Defined types for the Asynchronous array:

  • Email
  • Bitmessage
  • Freemail

Defined attributes for the Asynchronous array:

  • personal
  • business
  • school
  • official

Synchronous

Synchronous communication methods are ones where the sender and recipent communitate in real time. Instant messaging, phone calls, etc

Defined types for the Synchronous array:

  • Phone
  • XMPP
  • IRC
  • AIM
  • Skype

Defined attributes for the Synchronous array:

  • landline
  • mobile
  • fax
  • personal
  • business
  • official

Embed or link to resources/talks

The resources of Blockstack are currently quite scattered. Some of it is hard to find. It would be nice if we could gather that so it'd be simpler to find.

One thing is the talks (videos) etc, which would be great to link to. Some other resources like presentations or diagrams/explainers/posters could be stored in the (or a) repository.

Muneeb suggested starting by listing up what exists.

Add Privacy section to "Authentication" document

There should be a dedicated section that discusses exactly what sorts of privacy-relevant information about users is revealed by this system.

Perhaps it could also be elaborated whether it's possible for users to use the system completely anonymously, and if so, how.

How can I access a Bitcoin address that is tied to a passphrase?

The default Bitcoin address we generated for you is derived from your passphrase, which acts as a brain wallet. Only you have access to the funds in your address as only you have the passphrase and thus the recipe for generating the private key. We currently don't have functionality on OneName.io for you to spend your Bitcoins but you can currently generate your WIF private key and import it into a wallet like MultiBit or Bitcoin-Qt.

One way to do this is to download and open a local copy of brainwallet.org (https://github.com/brainwallet/brainwallet.github.com/archive/master.zip) and input your passphrase there (I wouldn't recommend using the live site, as they could conceivably snoop your PKs).

Hope this is helpful. We're working on improving the process and making it much simpler for the end user.

What terminology should be used for the "completion" of a spec?

Currently I'm using "DRAFT" to indicate a resolver spec is liable to rapid and potentially significant change.

Once that settles down, what term should be used to indicate that the spec has reached a state of completion upon which it is safe to create implementations upon?

Some suggestions:

  • "Published"
  • "Published v1"
  • "v1"

Or something else?

Documentation of namespaces

I was trying to figure out how the namespaces work, but had a hard time finding anything. It seems like more people are wondering about it too.

This is what I was looking for:

I'd like to understand how namespaces works. How much money is needed, how that is controlled. I guess it's just some sum of money that the blockstack software "needs" to be burned in order to open the namespace? And when opening the namespace, that person also gets to set the options for said namespace?
Can they also update the data later? Or is a namespace a fire-forget deal?
Basically, where can I learn more?

This bug is for tracking getting some better namespace documentation.

What's the best way to add another coin to the spec?

I'm interested in adding a devcoin address (or insert your favorite community's currency here) to my namecoin entry. Any thoughts on the best approach for that? Would we want to add another field to the top level of the spec (e.g. just slip in a "devcoin" key, or "litecoin", or ... entry)? Or are there ideas around abstracting it a bit and putting things under a top level key like "payments" or something like that?

Some question about blockstack on bitcoin

Hello guys,

I just was surfing around and found this interesting project.

And this pic draw my curiosity:
this pic

I began to think how did you use the bitcoin network, and I found

This doc says:

For example, a Bitcoin node may look at a Blockstack transaction and only see that bitcoins are moving from one address to another and that an unintelligible sequence of data has been attached in a data field (e.g. a field identified by OP_RETURN). Meanwhile, a Blockstack node will look at that data and will know how to interpret it in a way that updates the name database.

Is this mean that

  1. blockstack need create a bitcoin transaction(send some bitcoin from A account to B account, with blockstacka data field ) when a new name record is added everytime ??
  2. If 1 is true, who or which node take the responsibility to manage bitcoin, every node? And a blockstack node need to keep some Bitcoin all the time?

Build app on bitcoin network is fresh to me, so I really want to get it out.

Linking phone number

It could be nice to be able to include your phone number in the profile and verify it.

Add support for Bitcoin stealth addresses

Can you please add a field so users can indicate what their stealth address is?

With the release of DarkWallet, stealth addresses are starting to become widely used and they are excellent for ensuring that bitcoins are sent to the individual without having to send a payment request or sending coin to an address that the receiver doesn't want to re-use.

Example of a stealth address:

vJmuhe8BU5WPaUHcamoN9aaE1bEotZexJPytCH8H9FsUM5PFHgmzzDJuTRZezkzPoo9HZa7U5AFYhHTsULUo4N6HZESWJLVvrTp2fP

Chunking with next

Heya!

I didn't see anything in the spec, so I was just wondering whether a "prev" is also required in a chunk? It seems the without that, someone could hijack my information in an overflow chunk. Or is the onetime name prefix enforced?

If I have u/ricmoo => i/ricmoo-1 and in i/ricmoo-1 I have my PGP key and signed proof, then someone else, u/nightman can create a next=i/ricmoo-1, and upon resolving the u/nightman, will be able to lay claim that they own that PGP key along with its proof...

Suggestion - Allow checksums for images

If images had an additional field for checksum (sha256?) then images could be ensured when shown, that they have not been tampered with, or live in expired accounts, etc.

I don't think javascript can validate the sha256 of an image (or can it? maybe ajax it as binary?) but for the sake of services like onename.io, the website could easily download the image and ensure it is valid before returning it to the browser.

Just an idea.

3 days and paid for name still showing available.

Previously I had an issue with registering a name where I was able to pay for the same name 4 times from the same instance of blockstack within a few hours. Eventually the name confirmed about 6 hours later. This was a practice for the name I actually wanted which after registering and paying for, is now still showing available to buy again.

I'm assuming after 3 days this name is not going to confirm. Please, I've taken every precaution to ensure this valued name is not lost.

Trying to register another random name give me the error "cannot broadcast" so I'm assuming this could be part of the problem and the transaction has somehow not been properly broadcast. Any help would be greatly appreciated.

Allow unsupported/unknown services and information in a "misc" object

What do you think of allowing people to add miscellaneous data to a "misc" object? For example, there is currently no support for Litecoin or other altcoins, so they'll be able to add unsupported key => values that they want others to see. This could also allow for unconventional sites. For example, most people in the bitcoin world know Gavin Andresen, and he would be able to link to his bitcointalk.com profile. Likewise, someone well known in, say, marketing, could post his profile on warriorforum.com, or a drag racer to his drag racing profile on some site, etc. This will allow more open-ended and open use cases.

In the case that a service/site/anything becomes very popular, it can be moved out of the "misc" section and standardized.

There would likely be no way to standardize proof for anything in the "misc" section, as each site will be different, so people looking for verifications would need to use the existing options to verify for themselves (using Twitter, for example.)

The downside: allowing people to add miscellaneous information can bloat the size of each onename and make it a slightly more tedious for profile explorers to get the main data they need (the non misc stuff). Perhaps this can be addressed by requiring misc stuff to go into their own namecoin store, such as u/username-misc-1, u/username-misc-2, etc. That would make them optional, yet available to those that want them.

Additionally, and this is slightly off topic, I think it may be a bad idea to allow any unregistered Namecoin key for chunking profiles. In the example in the docs, you use i/username-1 as the key. This means that you're essentially putting onename into an entirely different namespace. This will make it harder for others to use that namespace, and all other namespaces that will be used to chunk profiles. If dashes are not allowed in usernames, why not just use u/username-1 as a continuation and keep everything in one place?

Just something to think about.

Calculate fees

When using the blockstack register command, the software appears to add a default fee of .00016 BTC. Add a way to estimate the fee necessary to have the transaction included in the next block (or show options for "slow," "medium," "expedited" transaction fees).

proposal: alternative method for representing and returning profile data

The traditional way to associate information with an identity is to put the raw user data in the key-value store in the blockchain, like so:

{
  "name": "Satoshi Nakamoto"
}

I'd like to propose an alternate method in which one could include a list of name servers that are able to return the user data, and then make sure that the data returned is signed by the owning keypair:

{
  "nameservers": [
    "172.8.0.1:5000/satoshi",
    "172.8.0.9:9000/satoshi"
  ]
}

Where the data would be formatted like so:

$ curl 172.8.0.1:5000/satoshi
Message:
{
  "profile: {
  "name": "Satoshi Nakamoto"
},
  "previous": "cd372fb85148700fa88095e3492d3f9f5beb43e555e5ff26d95f5a6adc36f8e6"
}
Signature:
HNGhFYwjtfdU4TTAT3+xIYaXmQvmjezks/zH9HETThqL8lZ5RwMBKMst6ThrurEn6J/IzUypfMrDWiw5whjFjfo=

As you can see, the data returned includes a message and a signature. The message includes the profile of the user, as well as the hash of the previously signed message.

This has various pros and cons, which I'll bring up in a further comment.

OneName tagline accurate?

"The decentralized identity system built on Bitcoin." on the main README

Isn't it build on...Namecoin? Not sure what the intent of this statement is.

Different address mismatch in u/ ownership

I am having the same issue others were having a while back and you reissued the tx for a few, maybe I need this as well. I get a different NameCoin address when I convert the pass phrase. I should say I created the usrername when the service was first announced I am just now trying to get control of my key and ran into this.

Oh by the way it's
u/grapeape

Nevermind I suspect now this is something I'm doing wrong (of course).

I think I have the right key now but for some reason I can't import it into NameCoin QT anyway not a onename issue.....

Failed to `pip install blockstack`

Successfully built blockstack blockstore registrar blockstack-client base58 virtualchain kademlia keychain blockstore-client blockcypher tinydb basicrpc protocoin blockstack-profiles pybitcoin Twisted bitcoin python-dateutil jsontokens keylib zone-file commontools pycparser
Installing collected packages: requests, ecdsa, commontools, base58, cachetools, bitmerchant, bitcoin, keychain, pybitcoin, Twisted, virtualchain, kademlia, boto, basicrpc, protocoin, blockstore-client, blockstore, python-dateutil, blockcypher, pymongo, tinydb, registrar, enum34, ipaddress, pyasn1, idna, pycparser, cffi, cryptography, keylib, jsontokens, zone-file, blockstack-profiles, blockstack-client, blockstack
  Found existing installation: requests 2.5.1
    Uninstalling requests-2.5.1:
      Successfully uninstalled requests-2.5.1
  Found existing installation: ecdsa 0.11
    Uninstalling ecdsa-0.11:
      Successfully uninstalled ecdsa-0.11
  Found existing installation: bitcoin 1.1.38
    Uninstalling bitcoin-1.1.38:
      Successfully uninstalled bitcoin-1.1.38
  Found existing installation: Twisted 15.0.0
    Uninstalling Twisted-15.0.0:
      Successfully uninstalled Twisted-15.0.0
  Found existing installation: kademlia 0.4
    Uninstalling kademlia-0.4:
      Successfully uninstalled kademlia-0.4
  Found existing installation: blockstore 0.0.3
    Uninstalling blockstore-0.0.3:
      Successfully uninstalled blockstore-0.0.3
Successfully installed Twisted base58 basicrpc bitcoin bitmerchant blockcypher blockstack blockstack-client blockstack-profiles blockstore blockstore-client boto cachetools cffi commontools cryptography ecdsa enum34 idna ipaddress jsontokens kademlia keychain keylib protocoin pyasn1 pybitcoin pycparser pymongo python-dateutil registrar requests tinydb virtualchain zone-file
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/pip/__init__.py", line 217, in main
    return command.main(cmd_args)
  File "/usr/local/lib/python2.7/site-packages/pip/basecommand.py", line 246, in main
    pip_version_check(session)
  File "/usr/local/lib/python2.7/site-packages/pip/utils/outdated.py", line 102, in pip_version_check
    installed_version = get_installed_version("pip")
  File "/usr/local/lib/python2.7/site-packages/pip/utils/__init__.py", line 848, in get_installed_version
    working_set = pkg_resources.WorkingSet()
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 626, in __init__
    self.add_entry(entry)
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 682, in add_entry
    for dist in find_distributions(entry, True):
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2080, in find_eggs_in_zip
    if metadata.has_metadata('PKG-INFO'):
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1610, in has_metadata
    return self.egg_info and self._has(self._fn(self.egg_info, name))
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1968, in _has
    return zip_path in self.zipinfo or zip_path in self._index()
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1848, in zipinfo
    return self._zip_manifests.load(self.loader.archive)
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1788, in load
    mtime = os.stat(path).st_mtime
OSError: [Errno 2] No such file or directory: '/usr/local/lib/python2.7/site-packages/ecdsa-0.11-py2.7.egg'

Specs

  • OS X 10.11.5
  • Python 2.7.10
  • pip 8.1.1 from /usr/local/lib/python2.7/site-packages (python 2.7)

Enable HSTS & force TLS on passcard.info

Good for user privacy and speed improvements by SPDY (if you upgrade your cloudflare plan!)

(Not sure if this is right repo for comments on passcard.info. Which repo has the current site source?)

An idea for security

I was talking to a friend recently about this (we talk about onename a lot) and I had this idea for a security model, and just want to put it out there to get some feedback.

The goal is to have 3 levels of security:

  • Ownership: This key OWNS the identity, it is powerful and would ideally never need to be used. I would plan to etch the key onto a slab of tungsten, have it encased in cement and built into the foundation of my house. BIP38 encrypted, of course. I certainly don't want to be typing it into my computer every 6 months to renew things.
  • Information: The key is super important, but can be invalidated and changed by the above block of cement. This key actually manages the information collated by onename. PGP, e-mail address and all that good stuff. It doesn't get used often, but it gets used.
  • Signing: This key could pretty much be a brain wallet, but with a decent brain. Could be stored in your MacBook's Keychain. It's used for signing into websites, and things you need to do several times a day. It can be invalidated and changed in your information.

So, an idea to implement this, assuming you want the username ricmoo (a script would do this... Never do it by hand):

  1. You create the onename u/ricmoo (with a private key P0), which contains only 1 element, a chunked next, which points to i/ricmoo-1.
  2. You create i/ricmoo-1 (with a private key P1), which contains all the information, along with further chunks if needed (can use the same P1, or other keys if you wish).
  3. One of the items in the i/ricmoo-1 is a "signing" public key (from a private key P2). This can be used to merely prove your identity by signing challenges to log into websites and such.
  4. Now you send some namecoins to the address of P0, which then uses the utxo and signs 100 chained name_update transactions . You can now bury P0 in your basement as you have enough transactions to keep it alive for 50 years.
  5. Just use P1 like you normally use a private key today. Keep it safe, but know you can always dig up P0 and change the indirection.
  6. Make sure something pumps one of those P0 signed transactions out to the universe before the name expires.

A couple of optional steps

  • Sign 50 years worth of transaction with P1 while you're at it and give it to the same service keeping your P0 alive.
  • create 100 cancel transactions with P0, that can send the funds to another address, in case you want to back out of the name.

Anyways... Just something I'm thinking of putting together, and wanted to get some feedback
RicMoo

change repo name to "blockchain-id"

The wiki content is mostly about blockchain ID, so this repo's name can be changed to "blockstack/blockchain-id" and we will create another "blockstack/blockstack" repo with general information about Blockstack.

Nomenclature: What's the Passcard identifier called?

Is the Passcard username called "passname"?


What's the best way to prompt users when we want them to enter their Passcard (in an input field for example)?

  1. Enter your Passcard:
  2. Enter your Passcard Passname:
  3. Enter your Passname
  4. Enter your Passcard username:

#4 seems like it would be easiest to understand
#1 sounds the best to my ears/eyes - and I think it's clear when there's a text input box that you don't want the user to type all of their profile data in.


I'm mostly concerned with how to present this to end users, but this nomeclature comes up frequently in code: does a variable/field/attribute passcard refer to the string identifier or an object with all the profile/verification contents of a user's Passcard? Would love to have a community consensus and accepted convention.

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.