Bitcoin Forum

Bitcoin => Wallet software => Topic started by: prof7bit on July 21, 2011, 10:42:57 PM



Title: Free Pascal (Object Pascal) Bitcoin Client
Post by: prof7bit on July 21, 2011, 10:42:57 PM
I want to anounce that I have started working on an implementation of the full Bitcoin p2p potocol (and Wallet functionality) in Object Pascal.

The sources are available under LGPL with static linking exception (same as the Lazarus components), and I am trying to make it as portable as possible for a wide range of platforms and CPUs (even big endian CPUs) while the main focus is on fast bootstrapping (initial block download), extremely fast startup times, low Bandwidth usage, low HDD usage, low RAM usage.

It will consist of the core (non UI) units for the p2p, wallet, transaction functionality that can be linked into your own applications and later (not yet started) also a rich GUI for Windows, Unix, Linux, Mac-OSX that will be made with Lazarus/LCL for superior end user experience.

the project home page is here: http://code.google.com/p/fpbitcoin/

Currently there are no downloads yet but you can check out the (half finished and slowly growing) source from svn already and study it, experiment with it, etc.

I try to document it as good as possible to make it usable for documentation purposes also, so it might help others to get started with their own implementations too. If you see something strange in the code that needs explanation (or needs improvement or is an outright error) then please tell me and I will try to document it, improve it or fix it.



Title: Re: Free Pascal (Object Pascal) Bitcoin Client
Post by: wumpus on July 23, 2011, 09:43:26 AM
Pascal.. makes me feel nostalgic to Turbo Pascal.. :) Didn't know people were still using it, neat!


Title: Re: Free Pascal (Object Pascal) Bitcoin Client
Post by: prof7bit on July 23, 2011, 06:56:00 PM
Pascal.. makes me feel nostalgic to Turbo Pascal.. :) Didn't know people were still using it, neat!

I'm of course not using 1980's Turbo Pascal, I am using a modern compiler and IDE from the 21st century.

There exists a large and growing(!) community around the FPC compiler whose homepage is here: http://www.freepascal.org/ and the free crossplatform IDE and RAD tool Lazarus (imagine something like Delphi for Linux and Mac or an IDE as powerful as Netbeans and as fast and lightweight as notepad). If you want to check it out http://sourceforge.net/projects/lazarus/files/ (the easiest to install is the Windows version, it comes completely bundled with compiler, debugger and IDE in one setup.exe, the other platforms will require you to install separate packages for compiler and IDE (and maybe even the compiler sources)).

Should you really decide to spend an afternoon trying it out (you mentioned nostalgic feelings about Pascal so I bet you are already downloading it) then you will quickly understand why it makes perfect sense that there are *many* people who can use this development platform today and that most of them like it very much and will continue to use it for many years to come. You might even start re-evaluating your attitude towards the other mainstream languages and tools as a direct consequence of this experience.

______
PS: For the Bitcoin client I am using FPC version 2.5.1 (which is from the bleeding edge development branch) and not the stable 2.4.2 Compiler that is available on the sourceforge downloads. This means I might have used language constructs that are not yet available in 2.4.2 (FPC is still improving with every single day).

Nightly snapshots of Lazarus can be found here: ftp://ftp.freepascal.org/pub/lazarus/snapshots/
and nightlies of the compiler (for separate installation) here: ftp://ftp.freepascal.org/pub/fpc/snapshot/trunk/