Pages:
Author

Topic: [Help] Programming Bitcoin Wallets in PHP /ASP.NET (Read 3235 times)

hero member
Activity: 714
Merit: 662
I am hoping to be able to one day in a few years land myself a job at a software development company without having to go to school and the posted guides are excellent resources.

This is already possible, there is a lack of talent in the software industry, not a lack of certificate.
sr. member
Activity: 448
Merit: 251
This is a good thread and excellent replies. I am also a trying hard programmer who wants to learn more about bitcoin development. I saw some good documentations from the replies in this thread. I will try to learn thru those. Thanks for starting this.

I agree I am learning a lot more every day the more I spend here. I appreciate the knowledge I get here and while I can not always comment on what's being discussed, I still learn. I am hoping to be able to one day in a few years land myself a job at a software development company without having to go to school and the posted guides are excellent resources.
legendary
Activity: 2240
Merit: 1069
This is a good thread and excellent replies. I am also a trying hard programmer who wants to learn more about bitcoin development. I saw some good documentations from the replies in this thread. I will try to learn thru those. Thanks for starting this.
member
Activity: 183
Merit: 12
ImmVRse | Disrupting the VR industry
Few days ago I found blocktrail.com API has a lot of "samples" on GITHUB.

Ready to go webwallet: https://github.com/blocktrail/blocktrail-webwallet

Mobile wallet: https://github.com/blocktrail/blocktrail-wallet

And as you can see in their github account there are a lot of other examples...

Hope it helps.
member
Activity: 66
Merit: 10
I agree with the suggestion of using the NBitcoin library. Their Github repo is very active and well maintained. NBitcoin implements pretty much all functionalities of what you need.
sr. member
Activity: 318
Merit: 251
No, other way around.  The executable / binary is inside the VM.  For example, my offline signer is a Python app at:

https://github.com/peterscott78/offline_signer/

Go into the /bin/ directory, and there's binaries available for Windows and LINUX 32/64 bit.  Just download it to any computer without Python, OpenSSL or anything else installed, and it will still work just fine.  All you need is that archive.

Same goes for Qt, as I have a development IDE developed in it.  Or for another example, Bitcoin Core is developed in Qt, and works great on any OS right out of the box.
hero member
Activity: 714
Merit: 662
Really ? you don't need to install Python nor QT runtime libs ?

Nope.  What happens in you setup VMs with each desired OS, then compile it from source on each OS.  For both, Python and Qt it will generate an executable binary, with all necessary dependencies / libraries for that OS.  There's absolutely no additional software / configuration / dependencies required, and it will work straight out of the box.  Once compiled, I can setup another VM with a fresh install of whatever OS with no development tools / libs on it, and it'll work perfectly.

Anyway, I'm not here to argue.  If you like C#, then great, stick with it. Smiley  If you want to distribute a desktop app and want it truly cross platform, there are better options than C#.

So you mean the python VM is inside the exec ? Not just an installer which has python shipped inside ?

We should have that in .NET too very soon though piloted by MS. (already out, but not production ready)
sr. member
Activity: 318
Merit: 251
Really ? you don't need to install Python nor QT runtime libs ?

Nope.  What happens in you setup VMs with each desired OS, then compile it from source on each OS.  For both, Python and Qt it will generate an executable binary, with all necessary dependencies / libraries for that OS.  There's absolutely no additional software / configuration / dependencies required, and it will work straight out of the box.  Once compiled, I can setup another VM with a fresh install of whatever OS with no development tools / libs on it, and it'll work perfectly.

Anyway, I'm not here to argue.  If you like C#, then great, stick with it. Smiley  If you want to distribute a desktop app and want it truly cross platform, there are better options than C#.
hero member
Activity: 714
Merit: 662

We're getting into semantics here.  C# is a Windows based language developed by Microsoft.  Yes, you can run C# code via Mono or Wine, but I'm not sure if running code via an emulator counts as cross-platform, since your average non-technical end user is going to have difficulty running that C# code on LINUX.

Languages such as Qt and Python on the other hand are truly cross platform, because you can compile it into binaries on each different OS from source, and it simply works straight out of the box regardless of OS.  Just download the archive for your OS, unpack, and run the executable.  No additional software or configuration needed.

Actually this is not different to how java work. Even better ! With .NETCore microsoft will ship .NET CLR with the app, so no install is required. (.NETCORE is competitor of mono developed by Microsoft)

Quote
Languages such as Qt and Python on the other hand are truly cross platform, because you can compile it into binaries on each different OS from source, and it simply works straight out of the box regardless of OS.  Just download the archive for your OS, unpack, and run the executable.  No additional software or configuration needed.

Really ? you don't need to install Python nor QT runtime libs ?
And as I said, .NETCore will also work without install, this is hot stuff in the .NET world these days, the .NET community is very bullish. (was not like that 2 or 3 years ago)

Even better than that, with .NETCore open sourced, you'll see soon more micro controller .NET enabled. (was already the case with gadgeteer and netduino, but these were house-made VM)

Well, I guess there is no interest to learn about .NET if you already know well how to use another hammer, but .NET works on lots of nail so you are not required either to change it for another plateform.
sr. member
Activity: 318
Merit: 251

We're getting into semantics here.  C# is a Windows based language developed by Microsoft.  Yes, you can run C# code via Mono or Wine, but I'm not sure if running code via an emulator counts as cross-platform, since your average non-technical end user is going to have difficulty running that C# code on LINUX.

Languages such as Qt and Python on the other hand are truly cross platform, because you can compile it into binaries on each different OS from source, and it simply works straight out of the box regardless of OS.  Just download the archive for your OS, unpack, and run the executable.  No additional software or configuration needed.


full member
Activity: 164
Merit: 128
Amazing times are coming
But I would argue that C# is a good candidate for client wallet as well though, the code run on all plateform, without browser incompatibilities lurking around.

C# and LINUX don't get along very well.  That's why the core devs use Qt for Bitcoin Core client, because it is truly cross platform.


C# is a programming language like any other and that means you could write a compiler for it and generate java bytecode, machine code or assembler if you want. It is a language and has nothing to do with windows, linux or whatever. And yes, the .NET framework includes a c# compiler but in Linux you can use the c# compiler provided by Mono. In fact, every single time i finish a piece of code and test it in Linux it just works. Thats once more has nothing to do with c#, it is thanks the Mono team did an excellent work.
hero member
Activity: 714
Merit: 662
But I would argue that C# is a good candidate for client wallet as well though, the code run on all plateform, without browser incompatibilities lurking around.

C# and LINUX don't get along very well.  That's why the core devs use Qt for Bitcoin Core client, because it is truly cross platform.

C# and Linux works fine together (Mono), and getting better specially those days. (NETCore)
You can use NBitcoin on Linux, Mac, IOS, Android, Windows Phone, Windows and WinRT with the nuget package manager.

It is a fact though that people on Linux are not familiar with C#, which by itself is a good reason for them to stick to C++.
But if you know C#, then you can do cross plateform development easily and learning another language to do so does not make any economical sense.
sr. member
Activity: 318
Merit: 251
But I would argue that C# is a good candidate for client wallet as well though, the code run on all plateform, without browser incompatibilities lurking around.

C# and LINUX don't get along very well.  That's why the core devs use Qt for Bitcoin Core client, because it is truly cross platform.
hero member
Activity: 714
Merit: 662
Exactly what you need, I wrote it, along with the C# library :
Quote

Without throwing flower at myself, this is both the best lib and the best book you can get about bitcoin programming.

People have been developing C# bitcoin libraries for a while now, the real question is why would you use C#? You would probably want to employ encrypted storage of wallets and use Javascript on the client side to manage his funds.

Perhaps you want to have a balance on your website and have customers being able to deposit, which would be a whole other issue.

Because not everybody is developing client side wallet. The tip of the iceberg that the user see is less than 15% of the code which make any service run.
And NBitcoin is the only real library for Bitcoin the rest, BitcoinJ included are much less complete and tested.

But I would argue that C# is a good candidate for client wallet as well though, the code run on all plateform, without browser incompatibilities lurking around.
hero member
Activity: 740
Merit: 501
Exactly what you need, I wrote it, along with the C# library :
Quote

Without throwing flower at myself, this is both the best lib and the best book you can get about bitcoin programming.

People have been developing C# bitcoin libraries for a while now, the real question is why would you use C#? You would probably want to employ encrypted storage of wallets and use Javascript on the client side to manage his funds.

Perhaps you want to have a balance on your website and have customers being able to deposit, which would be a whole other issue.
sr. member
Activity: 318
Merit: 251
Here, try this as a starting point:

http://synala.com/   -- or --  https://github.com/peterscott78/synala/

It's PHP based, and contains everything you need for a proper, secured BIP32 wallet.  Address generation, tx creation and signing, etc.  It also integrates with the offline signer which you can find at:

http://envrin.com/offline_signer  -- or --  https://github.com/peterscott78/offline_signer

Hope that helps!


hero member
Activity: 714
Merit: 662
Exactly what you need, I wrote it, along with the C# library :
Quote

Without throwing flower at myself, this is both the best lib and the best book you can get about bitcoin programming.
legendary
Activity: 1988
Merit: 1317
Get your game girl
https://bitcoin.org/en/developer-documentation There you go,This documentation has almost everything you need to know before starting .
newbie
Activity: 3
Merit: 0
Oh wait...

Without JSON? What if in the process where I would like to design software for some clients / Agents who Buy and sell Bitcoin. So that they can use my software in exchanging. You know, using SQL statements? Is this possible too?
legendary
Activity: 1988
Merit: 1317
Get your game girl
One of the way I know is by downloading blockchain's bitcoin API which supports JSON for the incoming and ougoing transactions.However there are other ways too. For now check this : https://blockchain.info/api/blockchain_wallet_api
Pages:
Jump to: