Pages:
Author

Topic: SLICk - Small Lightweight multIcoin Client - page 2. (Read 4628 times)

legendary
Activity: 1526
Merit: 1129
January 11, 2013, 11:46:27 AM
#5
You could try and merge some of the changes upstream, but honestly, I'm not sure I care about litecoin. Is there some massively compelling reason you want to support that?
hero member
Activity: 700
Merit: 507
January 11, 2013, 10:08:09 AM
#4
That's really cool but it might not be a good idea to get too far from bitcoinj base. Otherwise you'll find it difficult to rebase on top of newer versions that have many bugfixes, performance improvements and other useful things.

Thats a problem i see myself. Primarily my idea was to have a wallet with bitcoinj as backend but this grew impossible when adding litecoin to it. But at the moment the changes are rather small - the analog to the prodNet() function there is a custNet() function that takes the config file as parameter and fills the network parameters from there. Also there are numerous smaller "fixes" to other functions to work with custNet() parameters and scrypt in general.
legendary
Activity: 1526
Merit: 1129
January 11, 2013, 09:56:12 AM
#3
That's really cool but it might not be a good idea to get too far from bitcoinj base. Otherwise you'll find it difficult to rebase on top of newer versions that have many bugfixes, performance improvements and other useful things.
hero member
Activity: 700
Merit: 507
January 11, 2013, 08:30:45 AM
#2
ok, to be honest i dont see the difference at the moment - could you explain this to me? THe way i handled it so far was to reproduce the same "answers" the original client gave me. Also i was testing all this all the time through a PHP RPC class and for the moment the client works without problems as substitute for my original client on two php projects.
hero member
Activity: 700
Merit: 507
January 10, 2013, 10:01:15 PM
#1
Current Version: 0.1.0 -development haltet but source available-

Description and Background:
SLICk is an attempt to create a lightweight wallet for VPS Users like me.
For me it was a big problem that Bitcoind was taking just too much memory and CPU for everyday use. Bitcoind also took way too much Harddisk space so i looked for alternatives and didnt find much.
The BitcoinJ Project was a nice start to create my own client. Using JPosse as example on how to use Servlets for RPC i began writing a small application to serve Virtualminer as bitcoind replacement. As some time went by and everything went just too smooth (even though using JAVA) i decided to add the capability of running a Litecoin Wallet to Bitcoinj/SLICk which ended up in modifing a lot of the base BitcoinJ code but also resulted in a small java application that can handle Bitcoin and Litecoin by just using different configuration files.

Configuration files:
Configurations can be split into two major areas: User and Chain
The part for the user lists the filenames of the wallet and blockchain file and how often the client should update. Also users can set a fixed fee and setup the RPC information.
The other part is the area which the normal user shouldnt touch. It basically lists all the network parameters of a blockchain like Genesis Hash, TargetTimespan and so on.
(Will add an example later)

RPC calls:
I have implemented a few RPC calls that are useful for websites. I dont plan on introducing GetWork and similar stuff into SLICk since it is not meant to be a replacement for bitcoind. Also i didnt add any Account features as they are in the original client. First of all because i created the client for people who use a db to track accounts anyway and because i dont like the built in account system.

Native RPC Calls:
getbalance
getnewaddress
getreceivedbyaddress("Address")
sendtoaddress("Address,Coins)
validateaddress("Address")
getblockcount()
getinfo()
getdifficulty()
getconnectioncount()
getblocknumber()
listtransactions()
settxfee (0.005)
sendmany ("Address",Coins,"Address",Coins...)
stop()

Custom RPC Calls:
I also created a few RPC calls that i thought to be useful at my own projects and therefore introduced them into this client as well.

getKeyPoolsize() -- Returns the number of keys in the wallet
savewallet() -- Triggers the saving of the wallet
ListPubKeys() -- Returns a list of all public Keys
SetMaxConnection(num) -- Changes the maximum amount of connections on the fly and saves it to the config file
TempMaxConnection(num) -- Changes the maximum amount of connections on the fly. Setting is lost after restart
EchoToCli("Some Message") -- Show some text on the command line
getConfidence(TransactionID) -- Returns the confirmations of a given Transaction ID


Changelog:
0.1.0
- Internal testing phase began.

Performance:
It takes about 3 hours to download the full Bitcoin blockchain at my home computer, less than an hour for Litecoin. This looks different for my VPS but its a very slow one when it comes to writing to disk...... Memory usage is ok: The Bitcoin client is running for a few days straight now and takes 100MB mem, the litecoin client roughly 95MB.. so both look good.




Download Links:
Source "As is": virtualminer.eu/SlickSrc.7z

I will update this once i find some time to keep developing it again...


how to run: copy the contents from btc.config or ltc.config (those work..) into slick.config and run the following command:
java -cp [youjarfile] com.windwallet.Main slick.config
Pages:
Jump to: