Bitcoin Forum
November 01, 2024, 08:07:39 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Poll
Question: Should I use Idiegogo.com or Rockethub.com for donations?
Idiegogo.com - 2 (40%)
Rockethub.com - 3 (60%)
Total Voters: 5

Pages: « 1 2 [3] 4 5 6 7 8 »  All
  Print  
Author Topic: [ANN] cbitcoin 2.0 - A Bitcoin Library in C  (Read 17212 times)
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 14, 2012, 08:28:11 PM
Last edit: November 14, 2012, 09:53:32 PM by MatthewLM
 #41

I have the coinbase maturity set at 100 and not at 120.

I'm going to start posting issues on the repository. It would be a good place to look for anyone that wishes to contribute: https://github.com/MatthewLM/cbitcoin/issues?page=1&state=open

As well as reading the README of-course: https://github.com/MatthewLM/cbitcoin/blob/master/README.md#making-a-contribution
Pieter Wuille
Legendary
*
Offline Offline

Activity: 1072
Merit: 1181


View Profile WWW
November 14, 2012, 09:42:11 PM
 #42

I have the coinbase maturity set at 100 and not at 120.

To warn you against a potential misconception (it's bitten me before...), coinbase outputs are valid to spend as of 101 confirmations (i.e. a difference of 100 between the height of the coinbase and the height of the transaction that spends it), but to be safe in the face of reorganisations, the reference client allows spending as of 120.

I do Bitcoin stuff.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 14, 2012, 09:53:18 PM
 #43

Don't worry, I have implemented it as 101 confirmations. Obviously the block with the coinbase is included as a confirmation and I meant 101 confirmations. I did spend some time staring at it to make sure I did implement it correctly. Others might want to check again: https://github.com/MatthewLM/cbitcoin/blob/7ff4abcff40221ac0eee7a32b12b4509ee4a9f56/src/CBFullValidator.c#L450.

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.

I didn't know about the 120 behaviour, though obviously that has nothing to do with the block validation code so I've not missed anything there.
capsqrl
Sr. Member
****
Offline Offline

Activity: 444
Merit: 250



View Profile
November 14, 2012, 11:03:07 PM
 #44

KDE does/did something like that. They licensed under both GPL and commercial license (for money) in case some buyer didn't like the restrictions of GPL.

No, KDE is fully open source under various licenses, and does not sell proprietary licenses. You're thinking of Qt, which KDE happens to use, but does not manage or produce.

Norsk Bitcoin-bruker? Kom til /r/BitcoinNO på reddit!
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
November 15, 2012, 12:49:52 AM
 #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.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 15, 2012, 10: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.
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1134


View Profile
November 15, 2012, 10: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.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 15, 2012, 10: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.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 15, 2012, 12:39:05 PM
 #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.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 15, 2012, 02:38:52 PM
 #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.
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
November 15, 2012, 03:49:47 PM
 #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.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 15, 2012, 04:58:59 PM
 #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.
Dusty
Hero Member
*****
Offline Offline

Activity: 731
Merit: 503


Libertas a calumnia


View Profile WWW
November 15, 2012, 05: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?

Articoli bitcoin: Il portico dipinto
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 15, 2012, 05: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).
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
November 15, 2012, 06: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.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 15, 2012, 06: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.
Gavin Andresen
Legendary
*
Offline Offline

Activity: 1652
Merit: 2301


Chief Scientist


View Profile WWW
November 15, 2012, 07: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.

How often do you get the chance to work on a potentially world-changing project?
ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1006


Bringing Legendary Har® to you since 1952


View Profile
November 15, 2012, 07: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 -> ∞

MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 15, 2012, 07: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.
hazek
Legendary
*
Offline Offline

Activity: 1078
Merit: 1003


View Profile
November 15, 2012, 08: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.

My personality type: INTJ - please forgive my weaknesses (Not naturally in tune with others feelings; may be insensitive at times, tend to respond to conflict with logic and reason, tend to believe I'm always right)

If however you enjoyed my post: 15j781DjuJeVsZgYbDVt2NZsGrWKRWFHpp
Pages: « 1 2 [3] 4 5 6 7 8 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!