Pages:
Author

Topic: [ANN] cbitcoin 2.0 - A Bitcoin Library in C - page 5. (Read 17219 times)

legendary
Activity: 1078
Merit: 1003
November 15, 2012, 04:05:34 PM
#64
How about instead of ad hominem attacks you actually read through his 9000 lines of code already written and find something concrete to criticize? Wouldn't that be more relevant and productive than questioning his capability based on a brief observation? And why not encourage him to try and fail if nothing else, it's not like his failure will be forced upon anyone else but his success might be good for a lot of people, no?

jgarzik and others have raised very good points on why his failure does have the potential to do a lot of harm to others. Splitting the network with incompatible implementations is a very real risk and does have the potential to harm everyone in the community. In addition bad PR from software failures affects us all.

It was not my intention to defend MatthewLM, he can clearly do that on his own, or to suggest he should be automatically trusted with your contribution just because he says nice things. Of course his background and history are important and should be questioned. All that I didn't appreciate is the manner in which Gavin did so.

As for any dangers of his failures I simply don't understand how a project with open code could ever implement or cause someone else to implement code that could cause any real harm. Actually if it did happen I think I'd have to welcome that sort of split because it would signal that the market isn't happy with the original client or is more happy with a new client. As long as the use of any code is voluntary there should be no problems for the future of Bitcoin, no?
legendary
Activity: 1120
Merit: 1152
November 15, 2012, 03:58:06 PM
#63
I am currently studying Enterprise Development BA at the University of Huddersfield and I have a very exciting business idea for bitcoin that would make use of cbitcoin.
So... please don't take this the wrong way, but what's your prior experience creating and shipping high-quality software?

I'll make another point: what's your prior experience with working with others? Part of what you're asking money for is to have the option to hire people to do some of the work for you, and in addition you're also asking for help with the codebase. I haven't done much management myself, but I have done just enough to know it's surprisingly difficult. Do you even have experience even just contributing to an open-source project, or working as a programmer in a large group? The people skills of setting expectations, negotiating technical compromises and so on are surprisingly hard to learn or do right without experience, well, doing just that. Frankly you're going to waste peoples' donations and time if you haven't had experience doing this before; at least have solid experience working in a group on software. It doesn't have to be fancy - some web-programming for a website is fine - but it has to be real and it has to be in a group.

Myself I'd feel better even if you were able to say you worked as a shift manager at a fast-food resturant; seriously, even that kind of experience would make a big difference to your success with hiring others on the project or with working with other volunteer contributors. Right now I just get the impression you manage to come off the wrong way with others in the community.

Maybe you're a prodigy and will get it right the first time, but you're already at 'cbitcoin 2.0' because you weren't happy with how 'cbitcoin 1.0' was turning out. See the solidcoin/microcash saga for an example of how over-promising "1.0/2.0/3.0" releases destroys confidence.

And maybe you CAN point to some other successful software you wrote and shipped when you were 17, in which case I'll shut up and leave you alone.

I'm 27 now, and I remember my projects ten years ago that I thought were going to change the world... and they didn't. Do the right web searches and you can probably still find some emails on the Freenet project development lists among others that I now find kinda embarrassing to say the least.

I've got this timestamping project I'm working on right now. It's not as far along as your library, 2500 lines vs. 9800, but still, you notice how probably no-one here actually knows the name of it? I might think it's going to change the world, but I don't want to waste people's time on a project that doesn't really exist yet. There's nothing wrong with eventually asking for donations and asking for help, but get something concrete first that's actually getting used in the real world to do a real task, then start thinking about where you're going to go next. You're also not going to really understand how your software should be architectured until you're at that point.

Myself I've set the goal that my timestamping thing needs to be able to create and validate timestamps, and a user should be able to do that out of the box. It doesn't have to be pretty or nicely documented, but it has to do something real and useful. I know I'm not really going to understand if my idea even makes any sense until I'm at that point. For instance for you, you're not going to know if, say, writing it in C makes any sense until you try integrating cbitcoin with a real-world C application using it. You also won't know if you're library interface makes sense until someone else tries to integrate *their* application with your library; IE, the point where they'll decide "yeah, lets send some money to this guy and improve it" Speaking of, the discussion on the forums about the license for cbitcoin is a good example: you'll understand better what sort of licensing works for people when people actually want to use your library for a real-world application.

Making a big deal about the project before that point is just going to make people think it's a bunch of vaporware, and people are also going to think I'm wasting a lot of other peoples time on the forums. I'm definitely not at the point where I can ask others for money to further the development effort. Posting occasional status updates and progress reports is fine, but just like me you're a long way away from going further than that.

tl;dr: In open-source useful working code speaks louder than anything else.

How about instead of ad hominem attacks you actually read through his 9000 lines of code already written and find something concrete to criticize? Wouldn't that be more relevant and productive than questioning his capability based on a brief observation? And why not encourage him to try and fail if nothing else, it's not like his failure will be forced upon anyone else but his success might be good for a lot of people, no?

jgarzik and others have raised very good points on why his failure does have the potential to do a lot of harm to others. Splitting the network with incompatible implementations is a very real risk and does have the potential to harm everyone in the community. In addition bad PR from software failures affects us all.

Besides, I want to see Matthew become an open source contributor, and much of being an effective open source contributor has nothing to do with technical skills.
legendary
Activity: 1190
Merit: 1004
November 15, 2012, 03:53:38 PM
#62
I do not mind people being skeptical but sometimes it can seem disingenuous. I don't think Gavin was trying to be disingenuous but he was a little bit considering he was jumping to conclusions on assumptions and dubious subjective opinion.

It's fair to ask for what my previous experience is. It's not fair to say my project is an automatic failure because of my previous experience. You may wish to only donate to projects run by 50 year old experienced cryptographers and that is OK if you want that. Equally, a younger brain can yield much more interesting and innovative results. The problem with people with "experience" is sometimes this experience is full of old ideas and habits. I hope my progress on cbitcoin thus far has been some indicator to my ability. I'm just looking forward to completing it so I can really demonstrate what I can do.

The focus should not all be on me either. I'm the project leader but not the only person who will be working on this project.

I guess I just need to get that logo sorted. Once I have a logo people will have to take me seriously.  Cheesy

Indeed.  I don't see a reason for the hate from reference client developers other than their codebase is a competitor.  I haven't had time to dig into cbitcoin, but a C language library implementation will definitely be useful.  Sure it might be a bit rough around the edges, but lets give him some time to develop it and get some help from other developers.

Time is nice. I would appreciate that.  Wink The library is not rough around the edges; it's incomplete. It doesn't completely work, it has many problems... because it's incomplete. I'm working on it (help appreciated).

I can agree about the version number inflation.  I know it seems superficial, but 0.0, 0.2, etc. is a much better way to go than 1.0, 2.0, 3.0.  1.0 should not be used until you have a usable library with a stable API.

This is opinion. My opinion is that it makes much more sense to have the left number as incompatible releases and the right number as compatible releases (No confusion over "will this break my code" then). Maybe I should have had three numbers but I prefer to keep it simple. If this goes against convention, then good. I like breaking conventions. I'll signify alpha and beta releases by adding alpha-x or beta-x on the end (eg. cbitcoin 2.0 alpha-2).
legendary
Activity: 1904
Merit: 1002
November 15, 2012, 03:44:34 PM
#61
I am currently studying Enterprise Development BA at the University of Huddersfield and I have a very exciting business idea for bitcoin that would make use of cbitcoin.
So... please don't take this the wrong way, but what's your prior experience creating and shipping high-quality software?

I ask because re-implementing Bitcoin as a first "software-people-other-than-myself-are-going-to-use" project is a really bad idea, I don't see any list of previous work at the RocketHub page, and the 9,000 lines of code you've already written doesn't look like the work of somebody who has professional software development experience (e.g. no makefile/build system ...).

Maybe you're a prodigy and will get it right the first time, but you're already at 'cbitcoin 2.0' because you weren't happy with how 'cbitcoin 1.0' was turning out. See the solidcoin/microcash saga for an example of how over-promising "1.0/2.0/3.0" releases destroys confidence.

And maybe you CAN point to some other successful software you wrote and shipped when you were 17, in which case I'll shut up and leave you alone.


What's the matter Gavin, can't take a little competition?

How about instead of ad hominem attacks you actually read through his 9000 lines of code already written and find something concrete to criticize? Wouldn't that be more relevant and productive than questioning his capability based on a brief observation? And why not encourage him to try and fail if nothing else, it's not like his failure will be forced upon anyone else but his success might be good for a lot of people, no?

Btw I'm posting this not because I have anything against your work on the original client but because I can't understand the nature or goal of your post. If it was to save people from investing into something that might not yield a positive result, I would have wished you didn't need to resort to manipulative fallacies to do so.

Indeed.  I don't see a reason for the hate from reference client developers other than their codebase is a competitor.  I haven't had time to dig into cbitcoin, but a C language library implementation will definitely be useful.  Sure it might be a bit rough around the edges, but lets give him some time to develop it and get some help from other developers.

I can agree about the version number inflation.  I know it seems superficial, but 0.0, 0.2, etc. is a much better way to go than 1.0, 2.0, 3.0.  1.0 should not be used until you have a usable library with a stable API.
legendary
Activity: 1078
Merit: 1003
November 15, 2012, 03:25:29 PM
#60
I am currently studying Enterprise Development BA at the University of Huddersfield and I have a very exciting business idea for bitcoin that would make use of cbitcoin.
So... please don't take this the wrong way, but what's your prior experience creating and shipping high-quality software?

I ask because re-implementing Bitcoin as a first "software-people-other-than-myself-are-going-to-use" project is a really bad idea, I don't see any list of previous work at the RocketHub page, and the 9,000 lines of code you've already written doesn't look like the work of somebody who has professional software development experience (e.g. no makefile/build system ...).

Maybe you're a prodigy and will get it right the first time, but you're already at 'cbitcoin 2.0' because you weren't happy with how 'cbitcoin 1.0' was turning out. See the solidcoin/microcash saga for an example of how over-promising "1.0/2.0/3.0" releases destroys confidence.

And maybe you CAN point to some other successful software you wrote and shipped when you were 17, in which case I'll shut up and leave you alone.


What's the matter Gavin, can't take a little competition?

How about instead of ad hominem attacks you actually read through his 9000 lines of code already written and find something concrete to criticize? Wouldn't that be more relevant and productive than questioning his capability based on a brief observation? And why not encourage him to try and fail if nothing else, it's not like his failure will be forced upon anyone else but his success might be good for a lot of people, no?

Btw I'm posting this not because I have anything against your work on the original client but because I can't understand the nature or goal of your post. If it was to save people from investing into something that might not yield a positive result, I would have wished you didn't need to resort to manipulative fallacies to do so.
legendary
Activity: 1190
Merit: 1004
November 15, 2012, 02:55:09 PM
#59
Quote
So... please don't take this the wrong way, but what's your prior experience creating and shipping high-quality software?

I ask because re-implementing Bitcoin as a first "software-people-other-than-myself-are-going-to-use" project is a really bad idea, I don't see any list of previous work at the RocketHub page, and the 9,000 lines of code you've already written doesn't look like the work of somebody who has professional software development experience (e.g. no makefile/build system ...).

The "software-people-other-than-myself-are-going-to-use" I've successfully completed are iPhone and Android apps which I've developed over a couple of years. Also I've done some web-development (See for example: http://www.thelibertyportal.com/#articles) and I'm currently also working on a facebook app (but that's not finished).

You can see the android apps here: https://play.google.com/store/apps/developer?id=Matthew+Mitchell&hl=en_GB
And the iOS apps: https://itunes.apple.com/sa/artist/matthew-mitchell/id398617356 (Open)

Re-implementing bitcoin is obviously a major challenge compared to mobile apps. That doesn't mean I cannot do this though. I'm getting there and I'm getting there at a reasonable pace.

I will implement the makefile. Others said they would help with that but since no one has I'll do it myself but I'll do that in my own time (I've got a long list of things to do).

Quote
you're already at 'cbitcoin 2.0' because you weren't happy with how 'cbitcoin 1.0' was turning out. See the solidcoin/microcash saga for an example of how over-promising "1.0/2.0/3.0" releases destroys confidence.

So it's a good idea not to improve software? cbitcoin 1.0 was OK but it was limited. I changed my vision for the project into something much more advanced. I do not see why that should destroy confidence.

But if anyone does not trust me, then that's fine, just wait a while and I'll prove you wrong. If there is one good thing about being criticised, it is that it becomes so much better when you make it work. I know what that feels like.
legendary
Activity: 1470
Merit: 1006
Bringing Legendary Har® to you since 1952
November 15, 2012, 02:31:29 PM
#58
I am currently studying Enterprise Development BA at the University of Huddersfield and I have a very exciting business idea for bitcoin that would make use of cbitcoin.
So... please don't take this the wrong way, but what's your prior experience creating and shipping high-quality software?

I ask because re-implementing Bitcoin as a first "software-people-other-than-myself-are-going-to-use" project is a really bad idea

+ 10 ^ n, where n -> ∞
legendary
Activity: 1652
Merit: 2301
Chief Scientist
November 15, 2012, 02:14:03 PM
#57
I am currently studying Enterprise Development BA at the University of Huddersfield and I have a very exciting business idea for bitcoin that would make use of cbitcoin.
So... please don't take this the wrong way, but what's your prior experience creating and shipping high-quality software?

I ask because re-implementing Bitcoin as a first "software-people-other-than-myself-are-going-to-use" project is a really bad idea, I don't see any list of previous work at the RocketHub page, and the 9,000 lines of code you've already written doesn't look like the work of somebody who has professional software development experience (e.g. no makefile/build system ...).

Maybe you're a prodigy and will get it right the first time, but you're already at 'cbitcoin 2.0' because you weren't happy with how 'cbitcoin 1.0' was turning out. See the solidcoin/microcash saga for an example of how over-promising "1.0/2.0/3.0" releases destroys confidence.

And maybe you CAN point to some other successful software you wrote and shipped when you were 17, in which case I'll shut up and leave you alone.
legendary
Activity: 1190
Merit: 1004
November 15, 2012, 01:39:14 PM
#56
So now you are telling me that the coinbase maturity is not 100 (ie. 101 confirmations)?

I've read the code. The code is lying to me? It's changed?

Explain to me exactly how cbitcoin is non-compliant with the bitcoin protocol.

I think he's referring to it allowing invalid transactions to be broadcast.

That doesn't mean cbitcoin is non-compliant with the bitcoin protocol. So it is unfair to say:

Quote
In that case, maybe people should redirect their donations and attention elsewhere.

cbitcoin is a bitcoin library and not a bitcoin client. It will give developers the ability to broadcast transactions and it is their responsibility to ensure the transactions are produced correctly. And this is false:

Quote
will create invalid transactions.

Not "will". The correct word is "can" but obviously there is little good reason why someone would want to create duff transactions.
legendary
Activity: 1904
Merit: 1002
November 15, 2012, 01:19:09 PM
#55
So now you are telling me that the coinbase maturity is not 100 (ie. 101 confirmations)?

I've read the code. The code is lying to me? It's changed?

Explain to me exactly how cbitcoin is non-compliant with the bitcoin protocol.

I think he's referring to it allowing invalid transactions to be broadcast.
legendary
Activity: 1190
Merit: 1004
November 15, 2012, 12:39:37 PM
#54
Quote
The coinbase in block zero is not spendable. If you allow it, potentially one day Satoshi could split the network.
Yes I know that.
I'm interested in knowing the details on why this is the case: someone is kind enough to enlighten me?

I don't know either. All I know is that it is that way for whatever reason.

Well it looks like I'll be able to get a logo done for £60 (~$95) upfront for initial designs (minimum 10). I'll then be able to post the designs on here to receive feedback. After deciding on a good design, for another £60 (~$95) the logo will be adjusted and finalised.

So that will be a cost of £120 (~$190).
hero member
Activity: 731
Merit: 503
Libertas a calumnia
November 15, 2012, 12:26:19 PM
#53
Quote
The coinbase in block zero is not spendable. If you allow it, potentially one day Satoshi could split the network.
Yes I know that.
I'm interested in knowing the details on why this is the case: someone is kind enough to enlighten me?
legendary
Activity: 1190
Merit: 1004
November 15, 2012, 11:58:59 AM
#52
So now you are telling me that the coinbase maturity is not 100 (ie. 101 confirmations)?

I've read the code. The code is lying to me? It's changed?

Explain to me exactly how cbitcoin is non-compliant with the bitcoin protocol.
legendary
Activity: 1596
Merit: 1100
November 15, 2012, 10:49:47 AM
#51
Yes and ShadowOfHarbringer was most likely speaking of the 120 confirmation requirement. The answer to the original question is therefore that cbitcoin will not have this 120 confirmation restriction since cbitcoin will not restrict what transactions you can produce and broadcast. You can use it to create any transactions you want. It doesn't mean all transactions will be accepted by the network and cbitcoin will include checks on received relayed transactions.

You have just admitted that you are creating a non-compliant codebase, which will create invalid transactions.

In that case, maybe people should redirect their donations and attention elsewhere.

Other bitcoin clients include this requirement because it is....  a requirement.

legendary
Activity: 1190
Merit: 1004
November 15, 2012, 09:38:52 AM
#50
I've now added the RocketHub page: http://www.rockethub.com/projects/11976-cbitcoin-developing-bitcoin-s-future

While I'm looking to raise over $6000 ideally, I picked the more modest $2000 goal as I think that should be reachable. I'd be very grateful for any donations. Using RocketHub you can become a donor or business sponsor.

I've also contacted a designer in regards to the logo. I should hopefully have that sorted within a couple of weeks. That will be a small cost.

Also please share the project on as many websites pages as you can. That much is free to do.
legendary
Activity: 1190
Merit: 1004
November 15, 2012, 07:39:05 AM
#49
If anyone wants to be listed as a donor or a business sponsor then you can email me and I can give a bitcoin address: http://cbitcoin.com/donors.html

Anyone who has already donated more than $15 in equivalent bitcoins can email me proof that they own addresses spent from in the donation transactions, if they want to be included in the list. You can do that by signing your information to be included on the list with a bitcoin address which acted as the source of the transaction. Email me questions if you need help.

The categories are:

Business Sponsor: For $1000 or more you can have your business logo and weblink listed on the contributors page and the homepage.
Gold Donor: For $500 or more you can have your personal name or business name with an optional weblink listed on the contributors page.
Silver Donor: For $150 or more you can have your personal name or business name with an optional weblink listed on the contributors page.
Bronze Donor: For $50 or more you can have your personal name or business name with an optional weblink listed on the contributors page.
Other Donor: For $15 or more you can have your personal name listed on the contributors page.
legendary
Activity: 1190
Merit: 1004
November 15, 2012, 05:50:09 AM
#48
Yes I know that. I was ignoring everything else and using the number 0 to demonstrate the mathematics. Imagine a different number if you want.

The genesis coinbase is not added to the unspent output index in cbitcoin so it cannot be spent. I made a note about it here: https://github.com/MatthewLM/cbitcoin/blob/master/src/CBFullValidator.c#L780

I've followed the validation rules carefully but indeed something might be missed which is why testing is important and I'd like to get others to look through the code.
legendary
Activity: 1526
Merit: 1134
November 15, 2012, 05:42:43 AM
#47
If we have a coinbase in block 0, we see by my code that the coinbase can be spent at block 100 (100 - 0 == 100) which is at the maturity and 101 confirmations, therefore it is correct.

The coinbase in block zero is not spendable. If you allow it, potentially one day Satoshi could split the network.

It's details like this which make reimplementing Bitcoin so dangerous.
legendary
Activity: 1190
Merit: 1004
November 15, 2012, 05:12:37 AM
#46
Yes and ShadowOfHarbringer was most likely speaking of the 120 confirmation requirement. The answer to the original question is therefore that cbitcoin will not have this 120 confirmation restriction since cbitcoin will not restrict what transactions you can produce and broadcast. You can use it to create any transactions you want. It doesn't mean all transactions will be accepted by the network and cbitcoin will include checks on received relayed transactions.
legendary
Activity: 1596
Merit: 1100
November 14, 2012, 07:49:52 PM
#45
EDIT:
By "fresh" coins i mean just received coins but having 6-7 confirmations. Official client won't allow to re send these, so this is the reason i created my fork.

So the satsohi client doesn't allow you to make transactions from outputs just found, even when they have 6 confirmations???

Of course it does.  You may make transactions from any output with at least one confirmation...  except for newly generated blocks, as another poster noted.

Generated blocks are not considered "mature" and spendable until 120 confirmations.

Pages:
Jump to: