Comments (24)
@super3 assuming a miner doesn't simply pick up your transaction without a fee, how do you expect to be able to put a username in the blockchain without fee's somewhere?
I guess you could maybe look at some kind of merkle root hash that gets published once every now and then and instead have donations prop that up?
Deciding what is contained in that merkle root tree though basically becomes a problem akin to finding a bitcoin block in the first place.
from gittorrent.
@super3 If that's "little" fee, then I feel like it's going to be more inconvenient for users (how do they pay that fee? are they supposed to mine?) than just spending a small amount of BTC.
from gittorrent.
@dcousens Not fee less. Its would be a merkle tree. Username data could be stored anywhere, and authenticated through this method.
So I'm thinking of the lines of a merkle root structure like @dcousens suggested. Actually wrote a service for that. Pass it a hash, it passes back a merkle proof that its in the blockchain.
If your current case 100,000 users would cost $3,000 of burned tx fees. In this case $100 or less could cover those users (to cover merkle root insertion), and the users would not have to acquire any Bitcoin. You or someone could make a donation to cover that and save the user the headache of acquiring Bitcoin.
Just trying to try to find a decentralized way to do the key value store without having users run wallet software, which will limit users significantly.
from gittorrent.
@super3 any ideas on stopping users spamming fake usernames?
Or I guess that doesn't really matter in the end?
How do we calculate the merkle tree without having some kind of authority (or relying on something like a proof-of-work mechanism)?
from gittorrent.
Don't need an authority to calculate the merkle tree. Any old server can do
it. After the tree is built you don't need the generator anymore just the
data.
Spam is an interesting one. I think the best you could do is put
application side limits.
Shawn
On Jun 2, 2015 9:00 AM, "Daniel Cousens" [email protected] wrote:
@super3 https://github.com/super3 any ideas on stopping users spamming
fake usernames?
Or I guess that doesn't really matter in the end?How do we calculate the merkle tree without having some kind of authority
(or relying on something like a proof-of-work mechanism)?—
Reply to this email directly or view it on GitHub
#36 (comment).
from gittorrent.
I think the best you could do is put application side limits.
But when you create a network / distributed system, you can't guarantee that only your application will communicate with that network; the network needs to be resilient to malicious clients. (I think charging approx $0.08 USD per username registration is a pretty good way of fixing those spam incentives.)
from gittorrent.
The application is not-needed post data insertion, if you have the metadata. I agree that it is a good anti-spam mechanism, but just as effective as an anti-user mechanism.
from gittorrent.
just as effective as an anti-user mechanism.
Right.
Spam is an interesting one. I think the best you could do is put application side limits.
How do you reach consensus between these two application servers?
from gittorrent.
No consensus needed. Each runs independently. Once you have the merkle proof you don't need the application server.
from gittorrent.
@super3 then how do you enforce that usernames are unique?
from gittorrent.
Hmmm, in both cases you have to have a copy of all the usernames and their records to ensure there are not duplicates. In this case its harder, because its specifically for proof of existence.
In that case something like ChainDB or Factom might be better.
from gittorrent.
in both cases you have to have a copy of all the usernames and their records to ensure there are not duplicates
This sound suspiciously like a hash chain, with some kind of authority/consensus mechanism.
from gittorrent.
Am I the only one who thinks requiring money for registration is discriminating for those who don't have any money? You all might think, 0.08$ is not much. Sure, not much for me either, but in some poor countries that is a lot to just spend on some text.
Also, BTC is IMHO still a pretty white-n-nerdy(sorry for that euphemism) thing, and even most people I know(coming from a hack-/tech-culture background) don't even have a BTC wallet.
from gittorrent.
It's less expensive than a domain name, but I guess it's not 0.
The thing is the way github (and bitbucket and all) provide you with your own name for free is because they are the ones paying for their server, but it still cost something.
I think one way to provide the same service as github does for this part might be to have "name providers" that would give these name for free. Now that either mean these name providers would use the bitcoin-based solution to keep it decentralized and pay the 0.08$ themselves, or they would have to use a distributed but centralized thing like the DNS to have a consensus (to make name unique) and possibly reduce the costs.
from gittorrent.
Am I the only one who thinks requiring money for registration is discriminating for those who don't have any money?
I'm not worried about people being unable to afford $0.08. From working at One Laptop Per Child for six years, maybe this is particularly obvious to me, but to share code on a social coding site you need:
- Regular electricity
- Internet access
- A computing device
- Training in programming, either through schooling or self-taught
- Free time to spend programming for fun
People go through great hardship and expense to get these things in the developing world -- they might be using an costly generator to get electricity that's only running for a few hours at a time and is difficult to maintain; they might have to take a long bus ride to go to somewhere with an Internet connection and pay to use it each time. I think approximately all of the people who have nonetheless found access to the above would find the idea that a one time payment of $0.08 is discriminatory laughable, and perhaps even offensive.
The point about access to BTC is a good one, though. They probably can't trade BTC locally or easily find an exchange that they can send money to. If you're concerned about that issue, I encourage you to set up some kind of scholarship to pay the $0.08 for people who can't afford to obtain BTC. I would join in too -- a fraction of the cost we spend on yearly domain name renewal for ourselves (also just "paying for text") would cover usernames for hundreds of people.
from gittorrent.
Registration is closer to $0.03 (with the current price). It would cost $240k to migrate all current Github users, and add 8 GB to the blockchain.
Here is a question. Why you do you have to use Bitcoin? Why not use another sufficiently secure blockchain, which could support way more users for less cost? Cost could be low enough to be covered by scholarships/faucets.
from gittorrent.
@super3 It's not necessary to use bitcoin. Might as well use some other blockchain. Bitcoin gives more security though.
from gittorrent.
@super3 Do you have a specific blockchain suggestion?
I like Bitcoin because I think that the cost is insignificant at the number of users in the foreseeable future, and people are more likely to have BTC that they can create OP_RETURN transactions with than for any other blockchain. Requiring users to mine non-trivial amounts of computation themselves or do currency exchange would be a dealbreaker in my opinion, I think.
from gittorrent.
@cjb Well my thought it that if you use another cryptocurrency you would just have a free service that would do the registration for you. $0.03 is not trivial at scale, but something like $0.0001 is trivial enough that someone could give you that amount free. No exchange, no mining. I would suggest Litecoin. Fees are much lower.
I think the best way to do this is simple advertising either way. The user can either pay the fee, or watch a 60 second video to cover the trivial fee. That way users would have difficulty acquiring Bitcoin or don't know what is it is could still cover the fee without exchanges or mining.
from gittorrent.
@super3 haha, I like your idea of forcing a user to look at some advertising for a few moments to get their username.
from gittorrent.
Rather than a 9 step decentralized solution, throwback to a 90s solution and just put ads. Solves all the problems.
from gittorrent.
Well, Franko's fee is like $0.000001 and we are willing to up the op_return to 80 with less hesitation, perhaps even higher if that would make things even easier.
from gittorrent.
@cjb @super3 Have either of you thought of creating a sidechain specifically for this? It would still be able to use the hashing power of the Bitcoin network while allowing you to do your own custom protocol changes.
from gittorrent.
@rodneyrod As far as I'm concerned sidechains are magically fairy dust. Not touching it till it is mature.
from gittorrent.
Related Issues (20)
- Bitcoin username registration
- Open to burning coins to an unspendable address? HOT 18
- Namecoin HOT 8
- How to integrate naming services with GitTorrent? HOT 3
- multi protocol handoff HOT 4
- Is this Project abandoned? HOT 26
- Registering the gittorrent: URL scheme
- Private Repos? HOT 2
- Clone hangs forever for self-hosted repo HOT 3
- Ethereum Registry HOT 3
- Possible collaboration with similar project (Gitchain) HOT 4
- Is the project active anymore? HOT 1
- Decouple GitTorrent from blockchain HOT 11
- Public Gittorrent repository as Github clone HOT 1
- Create pull-request at Git-SCM
- same user/repo ? HOT 1
- "WARN deprecated [email protected]" - Time to look closer at older depedencies? HOT 1
- Browser Compatibility
- other js compatibility
- what is the difference between GitTorrent, Gitpay, Gitchain, radicle, gitnonymous?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gittorrent.