Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
June 29, 2012, 03:22:41 AM Last edit: July 31, 2012, 06:32:42 PM by Xenland |
|
So I started a Pseudocode client, its more like documentation then it is as a client and its purpose is so any developer can check out the pseudo code and convert it to their chosen programming language. Here is what I have so far and will be adding more on to it as I have time and learn more. Anyone who has pseudo code to contribute please respond and we'll talk about it being added to the pages. It looks primitive and sad right now but it will help a lot of developers with creating their own bit coin clients and understanding how current custom clients work(not to mention the satoshi client) https://github.com/Xenland/Bitcoin-Pseudocode-Client/tree/gh-pages(Work in progress Github PAGES http://xenland.github.com/Bitcoin-Pseudocode-Client/ ) Topics describedVerifying a Bitcoin address Creating a Bitcoin address (Code finished, Explanation required) The topics need to be written are:*Query for a list of public Bitcoin nodes. *Requesting information from other nodes (Should include instructions with all available current commands the official Bitcoin client accepts) *Verifying the Block chain and individual blocks (Should include instructions on how to download/request blocks from other nodes) *Mining Operations
|
|
|
|
|
|
|
|
The network tries to produce one block per 10 minutes. It does this by automatically adjusting how difficult it is to produce blocks.
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
|
|
|
Tachikoma
|
|
June 29, 2012, 09:00:36 PM |
|
This is a great idea. I noticed you are giving a way a bounty for contributions. How are you going to (fairly) divide those?
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
June 29, 2012, 09:18:29 PM |
|
This is a great idea. I noticed you are giving a way a bounty for contributions. How are you going to (fairly) divide those?
I have thought of a quite a few ways but I haven't quite decided yet. I'm open to suggestions. There will almost more then liekly BTC in the future to give to more contributors, I just wanted to attract others to help contribute knowledge first before I decided. The less work I have to do the better they will be compensated. I noticed the bitcoin client information on how its mechanisms is scattered around and is almost always describing it at all different angles(Gets boring quick when attempting to research or develop). For instance the description of a Bitcoin address not only involved the mechanisms on generating an address but also described the benefits and pitfalls of it in real world applications saying things like "Bitcoin address is like an email address", or "Bitcoin addresses are small enough to fit on QR codes"; You know things that are not developer related. So my aim here is to acknowledge that the developer reading about Bitcoin client mechanism is already sold on using it now they just need to get to work on developing it and not spend so much "research hours" memorizing everything. Basically: My vision for this documentation project is so a developer can click on the subject like "Create a Bitcoin address" and learn how to create a Bitcoin address just by reading one page. The developer then can do all the work in converted the pseudo code mechanisms to their selected programming language. (I sound like a broken record i know but I feel it helps get my point across)
|
|
|
|
Tachikoma
|
|
June 29, 2012, 09:46:57 PM |
|
If you can find a good system to reward people who contribute to the project I will be willing to pledge some coins as well. At this point I wouldn't know how to "rate" the work and divide the reward fairly, I will watch this topic and see what happens
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
June 30, 2012, 12:49:06 AM |
|
If you can find a good system to reward people who contribute to the project I will be willing to pledge some coins as well. At this point I wouldn't know how to "rate" the work and divide the reward fairly, I will watch this topic and see what happens That might be why nobody wants to contribute; the incentive is unknown. What about 1BTC (+Tachikomas' rate) for every mechanism written in detail.The details should include at a minimum of two first formats.1st format is a general description of the steps necessary to achieve the subject mechanism 2nd format is a pseudo code example of how the mechanism is performed. (Pseudo code Standard: http://users.csc.calpoly.edu/~jdalbey/SWE/pdl_std.html ) 3rd format(optional): Example how to do it in a applicable programming language(PHP, Java, JS Actionscript, LOLCODE) Sources are required. Pseudo code is required. (Styling is optional) The topics need to be written are: *Create a Bitcoin address (Already started but I don't have time to finish it yet someone could get easy BTC with this.) *Query for a list of public Bitcoin nodes. *Requesting information from other nodes (Should include instructions with all available current commands the official Bitcoin client accepts) *Verifying the Block chain and individual blocks (Should include instructions on how to download/request blocks from other nodes) I hope i didn't forget anything
|
|
|
|
mskwik
|
|
June 30, 2012, 01:10:21 AM |
|
I would note that your Bitcoin address verification is incomplete, to actually fully verify that an address is valid you would also need to base58-decode the address and check the checksum. In general I wouldn't worry about checking the length/first character before decoding since you can easily check the exact length and network ID byte after decoding as well as easily verifying private keys or other types of addresses with very nearly the same code, but I suppose that's up to personal preference since the 00 mainnet byte does always give a 1 at the beginning of the encoded address.
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
June 30, 2012, 01:47:07 AM |
|
I would note that your Bitcoin address verification is incomplete, to actually fully verify that an address is valid you would also need to base58-decode the address and check the checksum. In general I wouldn't worry about checking the length/first character before decoding since you can easily check the exact length and network ID byte after decoding as well as easily verifying private keys or other types of addresses with very nearly the same code, but I suppose that's up to personal preference since the 00 mainnet byte does always give a 1 at the beginning of the encoded address.
Thanks for the input, I'll be sure to look into that when I have time. If memory serves, I concluded base58 is really just alphanumerical string with out the 4 letters. I couldn't find any detailed information on the check sums to conclude it was required(or added any significance) to validate an address. Maybe if you could explain the processes of decoding that is required to validate. (As my examples shows you may not have to display how a SHA256() hash operation works that’s a little TOO detailed) If you want the BTC just take what I started with for the incomplete subject and rewrite/append to it. and post it here. Rules AreThe details should include at a minimum of two first formats. 1st format is a general description of the steps necessary to achieve the subject mechanism 2nd format is a pseudo code example of how the mechanism is performed.
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
June 30, 2012, 02:04:24 AM |
|
Looking at php decode encode base58 scripts i guess it isnt just removal of letters i overlooked it none the less dont have time to desrcibe the procceses for the next week or so
|
|
|
|
mskwik
|
|
June 30, 2012, 02:54:02 AM |
|
Don't really have the time right now to write it up properly myself either, just kind of wanted it noted before someone else following your documentation gets mixed up on the same thing. For the record there are implementations of full address checking in a couple different languages in this thread: https://bitcointalk.org/index.php?topic=1026.0
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
July 01, 2012, 02:45:52 AM |
|
|
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
July 01, 2012, 04:14:18 PM |
|
I've changed my mind, I'll just do it myself and pay people to verify the information. That might work better.
|
|
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
July 31, 2012, 06:32:26 PM |
|
Still looking for volunteers
|
|
|
|
|