Bitcoin Forum
April 23, 2024, 09:52:55 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: What web related programming languages should I learn to make BitCoin Websites?  (Read 3191 times)
Fuzzy (OP)
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500



View Profile
May 22, 2012, 08:18:50 AM
Last edit: June 12, 2012, 06:17:48 AM by Fuzzy
 #1

I've been wondering this since I learned about Bitcoin and got into mining a year ago. What skills and what programming languages do you need to know to make a website that deals with handling users and bitcoin transfers?

Since the bitcoin protocol is so new, where did people figure out how to stream bitcoins from the client to a web page/database and back?

I've just started learning C++ and plan on picking up something more web/front end related after I've worked through the current book.

Any advice is appreciated.  Smiley
1713909175
Hero Member
*
Offline Offline

Posts: 1713909175

View Profile Personal Message (Offline)

Ignore
1713909175
Reply with quote  #2

1713909175
Report to moderator
1713909175
Hero Member
*
Offline Offline

Posts: 1713909175

View Profile Personal Message (Offline)

Ignore
1713909175
Reply with quote  #2

1713909175
Report to moderator
1713909175
Hero Member
*
Offline Offline

Posts: 1713909175

View Profile Personal Message (Offline)

Ignore
1713909175
Reply with quote  #2

1713909175
Report to moderator
Each block is stacked on top of the previous one. Adding another block to the top makes all lower blocks more difficult to remove: there is more "weight" above each block. A transaction in a block 6 blocks deep (6 confirmations) will be very difficult to remove.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713909175
Hero Member
*
Offline Offline

Posts: 1713909175

View Profile Personal Message (Offline)

Ignore
1713909175
Reply with quote  #2

1713909175
Report to moderator
1713909175
Hero Member
*
Offline Offline

Posts: 1713909175

View Profile Personal Message (Offline)

Ignore
1713909175
Reply with quote  #2

1713909175
Report to moderator
1713909175
Hero Member
*
Offline Offline

Posts: 1713909175

View Profile Personal Message (Offline)

Ignore
1713909175
Reply with quote  #2

1713909175
Report to moderator
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
May 22, 2012, 08:26:05 AM
 #2

I've been wondering this since I learned about Bitcoin and got into mining a year ago. What skills and what programming languages do you need to know to make a website that deals with handling users and bitcoin transfers?

You can do all the bitcoin related work using "bitcoind" which can be called from any language that allows "system" type calls (so which language you want to use is really not so relevant unless you are wanting to use a library interface).

Regarding using bitcoind you might be interested to have a look at https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list.

For handling "users" with the one wallet you can use "accounts" although bear in mind if you are going to actually run a "hot wallet" you will likely need to learn more about server security than about programming itself (you are probably well aware of this point with all the events that have happened in recent months).

Also if you are interested in the possibility of building Bitcoin web apps in C++ then you might be interested in my up and coming open source project (PM me for details).


Cheers,

Ian.

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

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
kangasbros
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1006



View Profile
May 22, 2012, 05:43:41 PM
 #3

If you like the django web framework (python), you can use the django_bitcoin library, which is developed by me + couple of other contributors.

https://github.com/kangasbros/django-bitcoin

I wrote a short tutorial about how to use it:

http://blog.kangasbros.fi/?p=85

Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
May 22, 2012, 07:54:27 PM
 #4

Related:
 - http://en.bitcoin.it/wiki/Category:Shopping_Cart_Interfaces

Unichange.me

            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █


Fuzzy (OP)
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500



View Profile
May 23, 2012, 09:46:07 PM
 #5

Thanks for the replies guys. Looks like I may be able to at least try some stuff with C++ first.

Was hoping a few more devs would reply with regards to good web based languages to learn, but I guess they're busy working on stuff Cheesy
kangasbros
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1006



View Profile
May 23, 2012, 10:34:02 PM
 #6

Thanks for the replies guys. Looks like I may be able to at least try some stuff with C++ first.

Was hoping a few more devs would reply with regards to good web based languages to learn, but I guess they're busy working on stuff Cheesy

Personally I don't recommend going for C++ if you want to create web applications. Even PHP would be better choice. But I guess you have some reasons to choose that way, best of luck Smiley

DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
May 23, 2012, 10:36:57 PM
Last edit: May 23, 2012, 10:48:09 PM by DeathAndTaxes
 #7

Fuzzy I am going to get booed out of the room but I would recommend .Net (and specifically c#).

php is likely the "standard".  There seems to be more bitcoin web-app code in php than any other language (maybe more than all other languages combined).  I agree that C++ is likely the last choice when it comes to web development.  Maybe for back end processing but even then ... meh.

Top 3 IMHO:
php
java
.net (I know I won't get no love for this one)

As far as how to link the "front end" and the "back end" the simplest as pointed out above is to use the plain ole bitcoind running in server mode and have your web app communicate with it via the JSON API.  If you want to go more complex there are libraries which allow building custom applications which interface with the network.  You should be able to write a simple php application which pulls some data from the bitcoind and displays it on a webpage pretty easy.  Your "hello world" could be something like showing the current block height, and balance of your wallet.  Useless but a good way to get your server setup, write some php code, and figure out how to communicate with the bitcoind.    Everything else is just the same concept on a larger scale/scope.



Throwing a little theory into the discussion.  Wait wait don't do to sleep yet it's not bad.  

A good application should be based on the ntier model.  So at the lowest level you have your datastore.  This could be something as simple as a text file but more likely is a database (MySQL is the most common).  Above that your have your low level plumbing which allows data access.  Luckily you won't be writing this.  Libraries to do that have existed for some time now.  The next level up is your business logic.  This is where bitcoind (or some custom bitcoin processing engine) fits in.  It is the "smarts" of your project.  The presentation layer should have no real "smarts".  It is simply for pre-validating user input (make sure to validate again in the business layer, and watch out for SQL Injection), and displaying the data (looking shiny).

Likely all that made about no sense and your first app will be "1 tier" (no that isn't a real thing) where a single blob of code handles everything from presentation to writing to the database.  You will find it becomes very difficult to maintain the application and even more difficult to keep it secure.  
weex
Legendary
*
Offline Offline

Activity: 1102
Merit: 1014



View Profile
May 23, 2012, 10:40:38 PM
 #8

Fuzzy,

At this time I would get familiar with PHP and MySQL. For example you could setup my https://github.com/weex/oscommerce-bitcoin module which would require that you install oscommerce (not exactly cutting edge but useful for learning). With that process, you would have a working web store in a couple days and can modify from there.

Even if don't want oscommerce, there is a useful script in there called script/monitor.py written obviously in python that talks to bitcoind and shows you how to bridge between MySQL(and php which would connect to it) and bitcoind.

Good luck to you.

-weex
daybyter
Legendary
*
Offline Offline

Activity: 965
Merit: 1000


View Profile
May 24, 2012, 08:26:09 PM
 #9

My vote goes to PHP and MySQL. HTML of course, too...

Kumala
Hero Member
*****
Offline Offline

Activity: 525
Merit: 500



View Profile
May 25, 2012, 03:39:54 AM
 #10

I use Ruby On Rails.  Web development up and running in no-time with lots of build in security features (SQL injection, etc.), tons of tools (so called GEMS) around that cover almost any topic you can think of. But if you do, I strongly recommend to do the development on OS X or Linux, too many limitations on Windows.
For database, MySQL is the most cost effective solution.


Hacked Account! Don't send any money.
daybyter
Legendary
*
Offline Offline

Activity: 965
Merit: 1000


View Profile
May 25, 2012, 11:14:57 AM
 #11

Are there cheap Rails hosts now? I studied it a while ago and must admit, that I had quite some problems to install it on a debian box. But the videos are great! (create a blog site in 15mins etc). Good thing is, that there are RAD tools for other languages now, that are practically identical, like CakePHP. Even the method names match.

I usually start with a data model (ArgoUML is the main tool here). Then create some MySQL from it and let the RAD tool create the MVC elements. There's actually not that much difference then whether you use Rails, Cake, Groovy etc.

CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
May 26, 2012, 03:41:28 AM
 #12

I usually start with a data model (ArgoUML is the main tool here). Then create some MySQL from it and let the RAD tool create the MVC elements. There's actually not that much difference then whether you use Rails, Cake, Groovy etc.

You might be interested to take a quick look at this (59 secs): www.ciyam.com/videos/User.html

The approach I am taking will let you create a Blog or Forum in under 5 minutes without having to write a single line of code. Smiley

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

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
weex
Legendary
*
Offline Offline

Activity: 1102
Merit: 1014



View Profile
May 26, 2012, 05:07:43 AM
 #13

So OP are you going to make a decision here or are you just trying to start some sort of webdev technology free-for-all?
Fuzzy (OP)
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500



View Profile
May 28, 2012, 01:47:44 AM
 #14

The crux of my situation is this: I first heard about BitCoin about a year ago. After deliberating about the best way to "get in on the action" I invested a few grand into mining hardware and started mining.

Since then I've had about a half-dozen BitCoin related ideas that I would've undertaken if I'd had the right programming skills. I feel that running a mining rig is no longer enough, and I'd like to get more involved, because you can only check this forum and the exchanges so often before you get bored.

Now that I have some free time, I'd like to learn how to bring my ideas to fruition. I'm starting with C++ because I'd like a solid foundation, and seeing as how in-depth it is, I'd like to start on it as soon as possible. I also know I'll be looking at developing back-end applications eventually.

I'm interested in BitCoin because it addresses so many of my frustrations revolving around fiat currency, and I know it's going to be a long term interest for me, so I'm prepared to put in the effort.

Making BitCoin related websites is the first thing I'd like to wrap my head around. The second would be integrating BitCoin with mobile devices, as I feel that is where BitCoin is eventually headed.

If this video is any indication, it'll be at least 5 years before BitCoin becomes mainstream, IF it becomes mainstream. I would like to be in good position by then to help meet the needs of the Crypto-Currency economy.
Fuzzy (OP)
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500



View Profile
May 28, 2012, 01:49:54 AM
 #15

[...]
Likely all that made about no sense

Thanks for the in-depth reply. It made a lot of sense actually, exactly what I'm looking for  Cheesy


PHP + MySQL, Python, HTML + CSS, Javascript + jQuery.

/thread

Any one in particular you'd recommend looking at first?


So OP are you going to make a decision here or are you just trying to start some sort of webdev technology free-for-all?

The latter helps me with the former, so both!  Grin
NothinG
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500



View Profile
May 28, 2012, 01:52:24 AM
 #16

I'm surprised the JSON link hasn't been posted yet.

https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)

cbeast
Donator
Legendary
*
Offline Offline

Activity: 1736
Merit: 1006

Let's talk governance, lipstick, and pigs.


View Profile
May 28, 2012, 06:10:33 PM
 #17

I am evaluating web programming languages as well. Ruby on Rails seems very friendly.

Any significantly advanced cryptocurrency is indistinguishable from Ponzi Tulips.
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
May 29, 2012, 01:57:51 AM
 #18

I am evaluating web programming languages as well. Ruby on Rails seems very friendly.

If you have a chance please checkout the demo video in my previous post - I am pretty confident that the system I have created is even more friendly than Rails (although at first it will seem a bit alien).

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

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
dogisland
Sr. Member
****
Offline Offline

Activity: 262
Merit: 250



View Profile
May 29, 2012, 12:28:20 PM
 #19

I've been a software developer professionally since 1994 and actually started programming in 1984. I've programmed 6502, Z80, Basic, Pascal, c, c++ and more and now I'm using ruby on rails from Bitcoin projects and Java for my contracting work which is in investment banking.

Without a doubt if you want to build web based software ruby on rails is the way to go.

Without a doubt the learning curve for web applications is steeper than most people think.

A typical web stack looks like the following

HTML
CSS
Javascript
Views
Controllers
Models
Database

You'd need to learn all of these, and then it gets harder as most web stacks end up looking something like.

HTML <- HTML standards bases <- HAML html abstraction language
CSS <- Sass css with variables and mixins
Javascript <- JQuery and all the jquery plugins
View <- Internationalisation support I18N
Controllers
Models
Gems <- numerous libraries with their own learning curves.
Database <- Backup policies, replication.

And the most important thing, the thing that kills so many sites especially some of the Bitcoin sites I've seen. Design.

I mean the way it looks, if you're not willing to learn layout and graphic design techniques your site will look shit and you'll struggle to get users.

Saying that, if you think you have a good idea and you need some help, just let me know.

swissmate
Sr. Member
****
Offline Offline

Activity: 364
Merit: 250



View Profile
May 29, 2012, 03:22:28 PM
 #20

One word,
PHP
Pages: [1] 2 »  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!