Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 05, 2012, 04:00:26 AM Last edit: December 05, 2012, 04:22:33 AM by Xenland |
|
Considering that all the basic functions are there and have multiple redundant security features in place its time for this library to experience some life and testing out in the field, this doesn’t mean production use is approved but I would appreciate those whom have some free time to try out a Bitcoin library that should be hassle free, I've publicly uploaded an Alpha Release candidate for BDKp Version 0.0.26*Alpha RC1 Testing Responses...: This Alpha RC1 is missing sending functions as required by the criteria of containing all basic functions -Thanks Sgt.Spike. The download link to the release candidate is found here: https://github.com/downloads/Xenland/Bitcoin-Development-Kit/Bitcoin-Development-Kit-0-0-26-RC1-alpha.tar.gzSignature to download link from OpenGPG Key-id DBB861F9-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQGcBAABAgAGBQJQvsWSAAoJEKTJxq7buGH5xygL/0bScDi7mms/NVMY4DDTl98c 1HDkp7U7wypLIPITgtMbSNICr/XPHLySPsJBcIMaLJhkDGb6gKBzLcggpXnAWoOo SA1LvB/b33sv+xOp5c9vHSjosEVbi/z8sWeQqLXjzzRr6NJxYyPRwQ/qFL+Y6+jZ aQv9/1nO/wW4txm+ghCx4DSgDche0+VrE7ciOYn4AZtM4LeZqyIeT9CXwhSG3bfX 5dVmiCkgGagB0WBrJJK2XzkRoFl5coAloT/Suyvu6ZJThUB626py4zbowslnPhbw uFrNVFBkyvmE+iXWTMQTt5XT84zQIeTwYaL/IKDzkn+49hlyw+CHMTFBqbm340uU X/ZwpTt03qIxv9XgpdWcB3G7ZKGulbdCFclOUX5wO9ziMx/DKQP/3G6XMcdOLath QCA1HeeoFa+bcm3qg+82mcbxosSpL3kmzUI9tzP3uCQQl270pNQZ7ofEsqrh0N36 7g6B6/LAwzZrn+Czl6EvNpx4YCIx7rMdzmysxOqLLA== =/Pni -----END PGP SIGNATURE-----
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 05, 2012, 04:02:45 AM |
|
Xenland, I just found this. THANK YOU. I hate dealing with anything to do with JSON, but have managed to plod my way through it with the bitcoin php package made in 2011... this is awesome though! I will certainly download it and give it a try... Ah glad to hear I'm not the only one! Let me know what you think about it after you run some miles on it I'm sure some real-world testing will bring about some excellent feature ideas!
|
|
|
|
SgtSpike
Legendary
Offline
Activity: 1400
Merit: 1005
|
|
December 05, 2012, 04:07:53 AM |
|
Question - can I send Bitcoins using this? I didn't see anything mentioned about sending bitcoins anywhere in the API or Wiki... maybe I'm just blind. And on top of that, can I do sendmany transactions?
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 05, 2012, 04:11:57 AM |
|
Question - can I send Bitcoins using this? I didn't see anything mentioned about sending bitcoins anywhere in the API or Wiki... maybe I'm just blind. And on top of that, can I do sendmany transactions? Hmm it appears I did leave those out, darn it I thought I had all the basics... Glad your here Sgt.Spike, I'm adding these functions now Send many too!
|
|
|
|
|
SgtSpike
Legendary
Offline
Activity: 1400
Merit: 1005
|
|
December 05, 2012, 05:09:01 PM |
|
Excellent! One more question, and I can experiment to answer this myself if you like, but is it possible to send multiple amounts to the same address in the same sendmany transaction? I know that was one barrier that the other PHP package I use couldn't deal with, because the array used Bitcoin addresses as the index. EDIT: Also, something.com is awesome.
|
|
|
|
Remember remember the 5th of November
Legendary
Offline
Activity: 1862
Merit: 1011
Reverse engineer from time to time
|
|
December 05, 2012, 05:14:22 PM |
|
GPL and any similar and subsequent version are evil. Use MIT or BSD licenses instead.
|
BTC:1AiCRMxgf1ptVQwx6hDuKMu4f7F27QmJC2
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 05, 2012, 06:16:15 PM Last edit: December 05, 2012, 07:14:09 PM by Xenland |
|
GPL and any similar and subsequent version are evil. Use MIT or BSD licenses instead.
You've shown me the error of my ways! -End sarcasm Let me know if you need a different license and we will work it out. PM me please.
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 05, 2012, 06:18:21 PM Last edit: December 05, 2012, 06:31:28 PM by Xenland |
|
Excellent! One more question, and I can experiment to answer this myself if you like, but is it possible to send multiple amounts to the same address in the same sendmany transaction? I know that was one barrier that the other PHP package I use couldn't deal with, because the array used Bitcoin addresses as the index. EDIT: Also, something.com is awesome. I aim to make all the Bitcoin functions to work exactly as if you were querying them directly through RPC JSON. v0.0.30 should be posted today with the sendfrom and sendmany low-level functions.
|
|
|
|
SgtSpike
Legendary
Offline
Activity: 1400
Merit: 1005
|
|
December 05, 2012, 06:53:58 PM |
|
Excellent! One more question, and I can experiment to answer this myself if you like, but is it possible to send multiple amounts to the same address in the same sendmany transaction? I know that was one barrier that the other PHP package I use couldn't deal with, because the array used Bitcoin addresses as the index. EDIT: Also, something.com is awesome. I aim to make all the Bitcoin functions to work exactly as if you were querying them directly through RPC JSON. v0.0.30 should be posted today with the sendfrom and sendmany low-level functions. I suppose it should work then. I know it is possible, because I have seen sendmany transactions with multiple outputs to the same address before. I'll give it a shot when you get the latest version up.
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 06, 2012, 05:13:09 AM |
|
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 06, 2012, 09:28:05 PM |
|
I wanted to get sendmany working today or even last night but It seems I must finish it up tomorrow, but sendfrom is completed and only tested once, so let me know how it works for you (and obviously don't "rely" on it just quite yet) I'm uploading the updates now.
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 08, 2012, 04:38:31 PM |
|
Just pushed updates for the Bitcoin Send Many function, however I ran out of BTC to test, if someone wants to help test, I'd recommend sending some testing BTC to a fresh wallet and then using this library with sendmany/sendfrom, let me know what code you run and what errors you get (if any). Much is appreciated!
|
|
|
|
SgtSpike
Legendary
Offline
Activity: 1400
Merit: 1005
|
|
December 08, 2012, 06:22:59 PM |
|
Thanks - hopefully I can test it this evening.
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 08, 2012, 08:52:20 PM |
|
Updates: Added the function (considered completed and fully tested) called bdk_login_with_coin_address() Its a function that does two steps into one, The first step is to output a randomize string (with some checksum/integrity and server signature data emedded into it aswell) The user signs the string with their own Bitcoin address with the Bitcoin.org client. once signed they submit the signature and the original token data they had to sign (The token data could be embedded in a file string query if you prefer not to use a database). If the signature is valid to the Bitcoin address and the data is intact and the signature is still valid upon return then the user is authenticated. This function is just a mechanism for doing all the "authenticating" work for you, it dose not however add the "session" elements to your website that is for you to decide wheather its cookies, PHP sessions, database etc its up to you, this library will just make sure you properly authenticated the Bitcoin user correctly.
Wiki page for this function is going up soon!
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 08, 2012, 09:38:53 PM Last edit: December 08, 2012, 09:49:26 PM by Xenland |
|
Updates Version 0.0.31 Alpha released Download Link for v0.0.31 Alpha SHA256SUM ce030d1a9865cb0bcaa7b006d6dc428c37b24196ed560a6da6de3677321e0571 OpenGPG Key Id: DBB861F9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux)
iQGcBAABAgAGBQJQw7GdAAoJEKTJxq7buGH5y5sL/3HS6nLeJfx/nfPzi/5mkVLv pAQ9911YoJWUDUEjKjrBP04/aslYpOzfE9SdEM+nOdSJE0P0shp2r41fiWUq41Zu mqlzRITQtj8V9ZeTcrdKvxrXPcyJgxXwCJ0YbXUHB4F3yO+/5dQxUSSUBiaiq76i zuozTcJHU6Hhlz4ZHX4/XPqtjBM8Cdld7NcizTKFGLgoxHuRL7pgnHAfunJprTfX sGVCmlTRdWApmciDdsPW0mjWlPPK/g3Uz2O4IRaM8bJ8ChsxPD113swouudhSfef XuSMSJmb7lQ8uCNZjLXMYWzCFIJeNXxM4aFos6X8ZSoUfDrsrOf4rkxs2Ywg0JmP +YtGymbqHD3bRH/WQ/j14wIe55wRQkq/EckcEqWq5VeE7xJ0MLx2FFLnTeH5b7oO /vNf3ot8Jszl8eSKVMpk4v+o1I6e5cHoxR55FvLyRLRWzW3sMkXwlTy0NalSo4Rc Yw8+izdkvkCo8DVvP+2Xtw3KJd7F5b6k5jd0McHwbA== =bzyZ -----END PGP SIGNATURE-----
BitcoinDevKit.com
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 09, 2012, 07:25:00 AM |
|
I have been freshing up on my FOSS licenses and I think I might release this library under LGPL instead of AGPL. Any thoughts? Conclusions? mishaps? Sounds like a great plan to me to benefit business and non-profit motivations.
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 09, 2012, 08:56:48 PM |
|
Actually for now I would like to stay with AGPL and if anyone needs different licensing please contact me, I would just like to do some surveys for those that plan on taking the library to the underground for their own uses and so the AGPL facilitates that process for me. In the future when I have enough survey data I plan to make it LGPL or even perhaps BSD/MIT but I need survey information and would like some compensation for my time so please be patient.
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 11, 2012, 08:14:21 PM Last edit: December 12, 2012, 09:57:32 PM by Xenland |
|
How to use the BDKp for login authentication with out making contact to a database(A Free Tutorial - Usually a Donors Privilege)Foreword:Obviously the point of an authentication system is to "save" some data attached to that "account" that the user owns so although you'd probubly want a database to save user interaction information for your web site (or service) you can authenticate the visitor with their Bitcoin address (With out making contact with the database initially) and this is makes logins more powerful because for one you need the Private Key to the Bitcoin address to even attempt to login which requires an attacker to gain access of your visitors computer/cellphone(Which are usually turned on/off constantly). two there is no passwords stored on servers so this way if there is a database compromised users can feel safe to know that they don't have to change "ALL" their passwords for other websites that use the same pass that was compromised. three this could add security to database compromise for sensitive information and provide control to the users, authenticated users can have their sensitive data encrypted to only open up with their private key this could force some business models to require user authorization before any data can be processed(This makes users feel safe online). Also if a business wanted the security of the encryption from database compromise but wanted to process data while the user is offline they can send their user data to a processing server that is separate from their website servers which would promote security for everyone. \ Okay so here is the example codes Step 1First off you need to ask the user what their Bitcoin address is. Once you have received that information you can then continue to "Step 1" of authenticating a user. The first step requires you to enter the Bitcoin address into the function and it will spit out a string for the user to "Sign" with the in-putted Bitcoin address $coin_auth_step1 = bdk_login_with_coin_address('1NaEAzo1SSzinaSodBicxA6ugd3edDzX7d', 1);
if($coin_auth_step1["return_status"] == 1){ //Successfull function execution happened, we can safely be rest assured that we can echo to the user a string to sign echo "Sign the following string but copying and pasting it into the "Sign Message" dialog found in your Bitcoin client.<br/>"; echo $coin_auth_step1["string_to_sign"]; }else{ //Something happened tell the user to try again echo "Try again"; }
Step 2The user should be given a single line input text box to input the signature. once the user has pasted in their signature and presses submit, the form submission should tell the next page what the original data was (The BDK library will check the checksum if the data has been broken/altered) So in the submission page it should look like this (With form variable-values already in-putted) $coin_auth_step2 =bdk_login_with_coin_address('1NaEAzo1SSzinaSodBicxA6ugd3edDzX7d', 2, 'H1toEU8fhdT5SrMWTKpsRi/2/S93o+zRfUAyfmVS7ew6PoOepO0VOCX5+XZJSo81LX7+I8VixTWjhAskqnCYeVM=', 'MTM1NDk5ODQxMHwyYzYzNTVmZWQxYzdmM2NjOGQyNTFiZDc4N2VlNWIzZDZkZGE2YmE1NjdmOTg3MDU0MWI0ODQ2OGIyN2QxYWIxfDU1NjUwMDM5MDgwYzdmY2Y2ZjJmNjlmZWJlMjM4YmIwODY4MTVkMGIxNmUyMmQyYjllZGI0OGZiOWFiZDIxOWYwZWFkNWQ0ZWMxYzBkZmRlODU5ZTk2ZmM5NGZmZDQ4NzkzOTJlYWMzNTI5ZGQwMzU1ZTQzNjI5YTA0MTBhNWY3YTljYmE0Y2QwY2Y3YTBhZjlkNjI4MzNiODk5YWM1NGNkZTZkMmI5ZmZiNWYxZTJiM2NiYzYxYzgxMmYyYTU5YWE5OTg5MTE3MWYyNTEzYmY0YWZjMzcyYzE2YTVkNzU5NjYxZDRkNGMyYTg5ZGI4NzcyNWQwZjU5ODVmMTQyMmZ8MU5hRUF6bzFTU3ppbmFTb2RCaWN4QTZ1Z2QzZWREelg3ZA');
if($coin_auth_step2["return_status"] == 1 && $coin_auth_step2["bitcoin_address_authenticated"] == 1){ //Successfull authentication! echo "YOU OWN THAT ADDRESS :) Welcome back!";
//This is were you execute your session functions. }else{ echo "FAILURE"; } ?>
NOTES: The user has 20 minutes to sign the request and submit to server before it is invalid
|
|
|
|
Xenland (OP)
Legendary
Offline
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
|
|
December 12, 2012, 09:56:22 PM |
|
I forgot to mention that if your getting errors while trying to do the coin_authentication function; Keep in mind you have 20 minutes before the token to sign is invalid More Updates: The BDKp library will be featured in the upcoming "Mining Farm" updates(targeted for release in January)
|
|
|
|
|