Bitcoin Forum
May 10, 2024, 07:51:13 PM *
News: Latest Bitcoin Core release: 27.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 17183 times)
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1129


View Profile
November 22, 2012, 12:55:09 PM
 #81

Quote
I see the future of bitcoin resting in open innovation, with fast, secure and scalable bitcoin software. I don't want the future of bitcoin to be endless downloading of the block-chain and waiting for confirmations on Mac, Windows or Linux software using one client. I will ignore anyone that is against this ideal and no one can stop me trying to help this process of innovation and competition.

I'm pretty sure those are principles we can all get behind. The question is why you think re-implementing Bitcoin in C is the best way to achieve that, given that C is known to be prone to various classes of problems (like buffer overflows) that other languages don't have.

For example, MultiBit is a client that processes the block chain much faster than the Satoshi client because it implements the SPV security model. There are optimizations in the work that will accelerate it still further, to the point where syncing with the network should only take a few seconds even if you don't start the client for a long time. MultiBit (and bitcoinj which it's based on) already exist. As far as I know, bitcoinj is the only codebase that implements both SPV and full validation.

So there are already people working towards this goal. You could help them, rather than re-implement Bitcoin from scratch, which is a lot of work to do well.

I share Jeff and Gavins concerns about this thread. I've got nothing against people re-implementing Bitcoin for fun as long as they are extremely conservative with enabling network participation (mining, relaying). I learned programming from my father, but he wasn't a professional so I didn't get any good until I started taking part in open source projects and learning from more experienced developers. I spent my teenager years working on a video game. So, many of us have spent a lot of time on IRC or elsewhere teaching people how Bitcoin works and helping them get started, because that's important.

Despite that, it's important to understand that Bitcoin is not like other open source projects. In most software the worst you can do is write a program that crashes and loses the users work. For Bitcoin, it can result in other people losing large sums of money. In the worst case if a buggy implementation becomes popular, the entire system could be destroyed. I worry a lot about bugs being introduced into the Satoshi client due to refactorings, etc, and the people working on that client are all extremely skilled and have a lot of experience. Even so, we still find serious bugs in each others code during review and testing.

For now the damage potential from cbitcoin is limited because it does not implement a wallet, so people can't store money with it, and it doesn't seem to support mining, so people can't split the chain with it. These things may change in future.

Developers are raising red flags here not because of a concern about competition, but because asking people to fund work on a Bitcoin implementation changes things quite a lot.
It is a common myth that Bitcoin is ruled by a majority of miners. This is not true. Bitcoin miners "vote" on the ordering of transactions, but that's all they do. They can't vote to change the network rules.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715370673
Hero Member
*
Offline Offline

Posts: 1715370673

View Profile Personal Message (Offline)

Ignore
1715370673
Reply with quote  #2

1715370673
Report to moderator
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 22, 2012, 05:31:28 PM
 #82

Hello Mike.

We could have a lengthy debate on whether C or Java is best. The fact is people will disagree on this and never reach agreement. It's something to agree to disagree upon. I personally think Java and C both have their pros and cons and it's OK for people to have their own preference to either. Maybe you'd like to start another topic for discussing C vs Java for bitcoin?

I am fully aware of the security issues to do with bitcoin implementations. Indeed cbitcoin will not implement wallets (people would add that on top as they see fit) or mining (absolutely zero point) but it will implement full validation and SPV nodes. It is important cbitcoin precisely corresponds to the bitcoin protocol. One thing that will be useful to maintain bitcoin implementations is to have some form of bitcoin standard. If people could agree upon a technical document that clearly outlines the protocol, that would be more helpful than reading though an existing implementation and bits of information placed on the bitcoin wiki.

Quote
I've got nothing against people re-implementing Bitcoin for fun

cbitcoin is not for fun.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 23, 2012, 07:12:37 PM
 #83

The makefile works for OSX Mountain Lion. I'm having issues getting cbitcoin to compile on Linux however. I think it is due to the weak linking and -fPIC (Also tried -fpic) is not working.

This is the issue: https://github.com/MatthewLM/cbitcoin/issues/13
paulie_w
Sr. Member
****
Offline Offline

Activity: 420
Merit: 250


View Profile
November 25, 2012, 12:09:49 PM
 #84

is this big and little endian compatible?
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 25, 2012, 12:13:34 PM
 #85

is this big and little endian compatible?

Yes it is, or at least that is the way it is designed to be. It's only been tested on a little-endian machine so feel free to try it out on a big-endian machine.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 30, 2012, 12:23:00 AM
 #86

I have completed the storage component for cbitcoin: https://github.com/MatthewLM/cbitcoin/tree/master/dependencies/storage

I will now complete the full validator, before I have no choice but to finally fix the CBNetworkCommunicator: https://github.com/MatthewLM/cbitcoin/issues/9

Building on Linux Mint 13 with the makefile still fails. If someone can get the build system to work for linux please submit a fix: https://github.com/MatthewLM/cbitcoin/issues/13
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
November 30, 2012, 01:32:52 AM
 #87

Take a look at strcpy(), it includes a termination character when copying.
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1091


View Profile
November 30, 2012, 01:57:18 AM
 #88

Take a look at strcpy(), it includes a termination character when copying.

Edit: correct.


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

Activity: 66
Merit: 10



View Profile
December 04, 2012, 06:22:08 PM
 #89

Your project seems like it could improve some aspects of the bitcoin client/network.  I may not understand it completely, but I see a lot of potential.  In reference to using multiple block chains, if this client software supports that, couldn't we see potential competition between different chains then on the network.  Like coins from block A are more then block B or would it still be the same essentially?  Would one who has these coins have them combined or would they be split across the two chains when conducting transactions and not able to send them from A to B?

YinCoin YangCoin ☯☯First Ever POS/POW Alternator! Multipool! ☯ ☯ http://yinyangpool.com/ 
https://bitcointalk.org/index.php?topic=623937
Bwincoin - 100% Free POS. BL5cYJHSEvjPo19GQa3z7Z3cCEbBY9iCee
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
December 04, 2012, 06:32:10 PM
 #90

Hello. cbitcoin will at first be designed to work with the bitcoin production and test chains. If someone made a separate chain it would be incompatible with other chains. In the future I may support more customisability for technologies based upon bitcoin, which could use their own chain. That is not a priority right now.
Elxiliath
Member
**
Offline Offline

Activity: 66
Merit: 10



View Profile
December 04, 2012, 06:36:29 PM
 #91

Thank you for the quick reply, I understand more what was your intent now.

YinCoin YangCoin ☯☯First Ever POS/POW Alternator! Multipool! ☯ ☯ http://yinyangpool.com/ 
https://bitcointalk.org/index.php?topic=623937
Bwincoin - 100% Free POS. BL5cYJHSEvjPo19GQa3z7Z3cCEbBY9iCee
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
December 19, 2012, 10:39:22 PM
 #92

Good news everyone! http://www.youtube.com/watch?v=1D1cap6yETA

I have now got the basic unit tests working for the full validator. This does not yet test various parts of the validator such as output spending, but it shows that the database system is working nicely. Next stop is to implement the full range of tests for the full validator. The CBNetworkCommunicator is still not working... I'll get to that eventually but first a lot of the old code needs to be updated to incorporate some new features.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
January 01, 2013, 10:15:26 PM
 #93

The hamming codes for storage are working. The problem is that they slow down the IO quite considerably. A storage system not using the hamming codes should be used instead for speed. Servers shouldn't need the hamming codes since server hardware is supposed to be highly resistant to data corruption.

Now I just need to test the full validator properly. I do not have the mined test blocks so I'll have to modify the code to allow for disabling the proof of work check.

There were some people that requested I gave them an option to donate using a crowd-funding website, since they did not want to donate in bitcoin. I set up a page because of that but only two people have donated. Do not forget that you can donate via debit/credit card here: http://www.rockethub.com/projects/11976-cbitcoin-developing-bitcoin-s-future and as a reward you can have your name or your business listed on the cbitcoin website.

Thanks.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
January 16, 2013, 03:07:58 PM
 #94

If anyone wishes to help, the best thing that can be done presently is to test the validation code. I already have many tests which pass, but much scrutinisation is needed for the block-chain validation code: https://github.com/MatthewLM/cbitcoin/blob/master/test/testCBFullValidator.c
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1078


Ian Knowles - CIYAM Lead Developer


View Profile WWW
January 16, 2013, 04:26:55 PM
 #95

Matthew - although I am a big supporter of your project (and you are welcome to set up a Project on http://ciyam.org/open for your venture - and if you do so I will personally donate 1 BTC towards it) I think that to get better "cred" you should consider changing the title of this thread (perhaps get rid of the "Route to Bitcoin's Future part") as I think this could really hinder your otherwise very admirable idea.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
January 16, 2013, 04:39:44 PM
 #96

OK, since you aren't the only one to complain, I've changed the title.
finkleshnorts
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250



View Profile
January 24, 2013, 05:39:49 PM
 #97

Props on your progress Matthew, and I applaud your listening ear. I've been keeping an eye on this project Smiley
Peter Todd
Legendary
*
Offline Offline

Activity: 1120
Merit: 1150


View Profile
January 24, 2013, 05:51:02 PM
 #98

OK, since you aren't the only one to complain, I've changed the title.

Thanks, it's a much better title!

MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
January 29, 2013, 02:16:05 PM
 #99

Props on your progress Matthew, and I applaud your listening ear. I've been keeping an eye on this project Smiley

Thanks. I've been ill over the last few days so I haven't made any progress in that time and I've got a lot of other work to do, but I'll try my best to continue at a reasonable pace from here onwards.
MatthewLM (OP)
Legendary
*
Offline Offline

Activity: 1190
Merit: 1004


View Profile
February 04, 2013, 03:43:56 PM
 #100

cbitcoin now builds fully (In it's current state) on OSX and Linux Mint (tested).

To build yourself and run the tests do this:

Code:
git clone https://github.com/MatthewLM/cbitcoin.git
cd cbitcoin
./configure
make test
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!