Show Posts
|
Pages: [1] 2 »
|
Ok, I've prepared a Mono version and I've tested on Maverick. I'll release it in a week or two. Unfortunately I had to strip the chart component which MS doesn't allow to use it on a different OS  Can someone provide a good open source component for charting on Mono?
|
|
|
investigating Encog and Neural Networks... I really hope to be able to integrate it...
|
|
|
Actually is on the makin' but I have to admit I'm quite slow programming in XCode. I'll check if the actual one can run on Mono and I'll update this thread.
|
|
|
Easybot (open source)Easybot is a trading tool able to load, save and draw candles from various sources. At today it supports fetching trades from Bitcoincharts.com and Btce.com as well as loading previous calculated candles from CSV files. Additionally I've added the possibility to backtest an EMA crossing strategy and the possibility to search for best EMAs combination. The github repo is here: https://github.com/codingdna2/easybotThis software was mainly inspired by this two projects: Gekko Trading Bot available at https://github.com/askmike/gekkotAPIbot available at https://github.com/nomorecoin/tAPIbotWhile I was trying to understand some issues with this softwares, I found myself in need of some visual aid. While it's functional to understand some aspects of trading bots, the source code is quite messy as it was written in a few days. Source CodeEasybot was developed using C# and Visual Studio 2012. Project uses some external references including: migrap/BitcoinCharts available here https://github.com/migrap/BitcoinChartsDmT021/BtceApi available here https://github.com/DmT021/BtceApiTA-Lib available here http://ta-lib.org/InstallationFind the latest release from https://github.com/codingdna2/easybot/blob/master/release/EasyBot_v1.0.zip?raw=true. Unzip the latest version wherever you prefer and run easybot.exe. Setup
Please find configuration file named easybot.exe.conf in executable folder Known issuesNot all pairs are supported. Due to the usage of BitcoinCharts, pairs availables on BTC-e but not on this one won't be working. I've successfully tested BTC/EUR, BTC/USD and BTC/RUR. DonationsDonations are always welcome and really motivate developing  1GC8kcZp5ZVBm2bo96bUKEMkztU1rx5oy7
|
|
|
Easybot (open source)Easybot is a trading tool able to load, save and draw candles from various sources. At today it supports fetching trades from Bitcoincharts.com and Btce.com as well as loading previous calculated candles from CSV files. Additionally I've added the possibility to backtest an EMA crossing strategy and the possibility to search for best EMAs combination. The github repo is here: https://github.com/codingdna2/easybotThis software was mainly inspired by this two projects: Gekko Trading Bot available at https://github.com/askmike/gekkotAPIbot available at https://github.com/nomorecoin/tAPIbotWhile I was trying to understand some issues with this softwares, I found myself in need of some visual aid. While it's functional to understand some aspects of trading bots, the source code is quite messy as it was written in a few days. Source CodeEasybot was developed using C# and Visual Studio 2012. Project uses some external references including: migrap/BitcoinCharts available here https://github.com/migrap/BitcoinChartsDmT021/BtceApi available here https://github.com/DmT021/BtceApiTA-Lib available here http://ta-lib.org/InstallationFind the latest release from https://github.com/codingdna2/easybot/blob/master/release/EasyBot_v1.0.zip?raw=true. Unzip the latest version wherever you prefer and run easybot.exe. Setup
Please find configuration file named easybot.exe.conf in executable folder Known issuesNot all pairs are supported. Due to the usage of BitcoinCharts, pairs availables on BTC-e but not on this one won't be working. I've successfully tested BTC/EUR, BTC/USD and BTC/RUR. DonationsDonations are always welcome and really motivate developing  1GC8kcZp5ZVBm2bo96bUKEMkztU1rx5oy7
|
|
|
Thanks, deleting the blockchain worked! 
|
|
|
Yes, it's 89906
joulecoind getinfo { "version" : 89906, "protocolversion" : 70001, "walletversion" : 60000, "balance" : 0.00000000, "blocks" : 93697, "timeoffset" : -3, "connections" : 0, "proxy" : "", "difficulty" : 5.82701265, "testnet" : false, "keypoololdest" : 1382966634, "keypoolsize" : 102, "paytxfee" : 0.00000000, "errors" : "" }
|
|
|
Hi, thanks for your replies, but NO, I'm still out of luck. I'm using Joulecoind in Linux (built from Github), but I'm noticing now it reports a different version: Joulecoin version v0.8.2-228-g1818049-beta (2013-11-13 22:22:35 +0200) Git pull reports: Already up-to-date. Can this be the reason? Here the error I'm getting: received block 00000000001483aa23854688a4741d88b7ee9a26027a75f16e783321443285bb ERROR: ProcessBlock() : block with too little proof-of-work Misbehaving: 192.241.171.45:26789 (0 -> 100) DISCONNECTING
Following is my joulencoin.conf # JSON-RPC options (for controlling a running Bitcoin/bitcoind process) # server=1 tells Bitcoin to accept JSON-RPC commands. server=1
# How many seconds bitcoin will wait for a complete RPC HTTP request. # after the HTTP connection is established. rpctimeout=30
# By default, only RPC connections from localhost are allowed. Specify # as many rpcallowip= settings as you like to allow connections from # other hosts (and you may use * as a wildcard character): rpcallowip=192.168.1.*
# Listen for RPC connections on this TCP port: rpcport=8349
listen=1 maxconnections=80
addnode=46.5.83.230:26789 addnode=192.241.136.114:26789 addnode=64.251.188.62:26789 addnode=144.76.166.163:26789 addnode=188.252.16.109:26789 addnode=37.228.213.52:26789 addnode=146.185.148.114:26789
I've updated to the latest version from github but I cannot sync anymore... I've tried to add IPs from page 7-8-9 with no luck. I've also tried to delete peers.dat but I'm stuck at about block 94000 Can anyone advise? Thanks in advance
Are you still stuck? I just tested by resyncing a wallet from block 0 up to block 119340 using the latest source from github. There might still be some wallets out there that's not on the latest version that's stuck on block 94000. Usually your wallet will ignore those peers after a while. Try launching your wallet with -connect=192.241.171.45. Once you're synced you can launch normally again.
|
|
|
I've updated to the latest version from github but I cannot sync anymore... I've tried to add IPs from page 7-8-9 with no luck. I've also tried to delete peers.dat but I'm stuck at about block 94000 Can anyone advise? Thanks in advance
|
|
|
If anyone is testing this with PPC_BTC, add the following in trader.py:
def getPip(self): '''provides correct minimum pip for orders, BTC-e specific''' pair = self.config.pair if 'ltc' in pair or 'nmc' in pair or 'ppc' in pair: return 0.00001 else: return 0.001
|
|
|
Hi everybody, this is my small contribution to the community. Please be easy on me  Since I've installed my RPi driving four USB Erupters, I thought I needed a web interface for it. Looking at available projects, I didn't found anything I liked. So I decided to configure my own portal with Wordpress. This is the only first step in integrating CGMiner stats with it but I think is already usable (even if it's really simple). This is the result (look at the bottom left):  This is the configuration panel visible from Wordpress Dashboard where you can configure IP and Port of your miner:  And this is the widget source code: <?php /** * Plugin Name: Miner Widget * Description: A widget that displays CGMiner stats * Version: 0.1 * Author: dna2 */
ini_set('display_errors', 'On'); add_action( 'widgets_init', 'register_miner_widget' );
function register_miner_widget() { register_widget( 'MinerWidget' ); }
class MinerWidget extends WP_Widget {
function MinerWidget() { $widget_ops = array( 'classname' => 'example', 'description' => __('A widget that displays statistics from CGMiner ', 'example') ); $control_ops = array( 'id_base' => 'miner-widget' ); $this->WP_Widget( 'miner-widget', __('Miner Widget', 'example'), $widget_ops, $control_ops ); } function widget( $args, $instance ) { extract( $args );
$title = apply_filters('widget_title', $instance['title'] ); $ip = $instance['ip']; $port = $instance['port']; $show_info = isset( $instance['show_info'] ) ? $instance['show_info'] : false;
echo $before_widget;
if ( $title ) echo $before_title . $title . $after_title;
$data = $this->requestMiner($ip, $port, 'summary'); if ( $data ) { //printf( 'Version: ' . $data['STATUS']['Description'] . '<BR/>'); printf( 'Uptime: ' . $this->formatTime($data['SUMMARY']['Elapsed']) . '<BR/>'); printf( 'MHS av: ' . $this->formatNumber($data['SUMMARY']['MHS av']) . '<BR/>'); printf( 'Found Blocks: ' . $data['SUMMARY']['Found Blocks'] . '<BR/>'); //printf( 'Getworks: ' . $this->formatNumber($data['SUMMARY']['Getworks']) . '<BR/>'); printf( 'Accepted: ' . $this->formatNumber($data['SUMMARY']['Accepted']) . '<BR/>' ); printf( 'Rejected: ' . $this->formatNumber($data['SUMMARY']['Rejected']) . '<BR/>' ); printf( 'Hardware Errors: ' . $this->formatNumber($data['SUMMARY']['Hardware Errors']) . '<BR/>' ); //printf( 'Utility: ' . $data['SUMMARY']['Utility'] . '<BR/>' ); //printf( 'Discarded: ' . $this->formatNumber($data['SUMMARY']['Discarded']) . '<BR/>' ); //printf( 'Stale: ' . $this->formatNumber($data['SUMMARY']['Stale']) . '<BR/>' ); //printf( 'Get Failures: ' . $this->formatNumber($data['SUMMARY']['Get Failures']) . '<BR/>' ); //printf( 'Local Work: ' . $this->formatNumber($data['SUMMARY']['Local Work']) . '<BR/>' ); //printf( 'Remote Failures: ' . $this->formatNumber($data['SUMMARY']['Remote Failures']) . '<BR/>' ); //printf( 'Network Blocks: ' . $this->formatNumber($data['SUMMARY']['Network Blocks']) . '<BR/>' ); //printf( 'Total MH: ' . $this->formatNumber($data['SUMMARY']['Total MH']) . '<BR/>' ); //printf( 'Work Utility: ' . $data['SUMMARY']['Work Utility'] . '<BR/>' ); //printf( 'Diff. Accepted: ' . $data['SUMMARY']['Difficulty Accepted'] . '<BR/>' ); //printf( 'Diff. Rejected: ' . $data['SUMMARY']['Difficulty Rejected'] . '<BR/>' ); //printf( 'Diff. Stale: ' . $data['SUMMARY']['Difficulty Stale'] . '<BR/>' ); printf( 'Best Share: ' . $this->formatNumber($data['SUMMARY']['Best Share']) . '<BR/>' ); } //if ( $show_info ) // printf( $ip ); echo $after_widget; } private function requestMiner($ip, $port, $cmd) { try { $socket = $this->getsock($ip, $port); if ($socket != null) { socket_write($socket, $cmd, strlen($cmd)); $line = $this->readsockline($socket); socket_close($socket); if (strlen($line) == 0) { //echo "WARN: '$cmd' returned nothing\n"; return $line; } //print "$cmd returned '$line'\n"; if (substr($line,0,1) == '{') return json_decode($line, true); $data = array(); $objs = explode('|', $line); foreach ($objs as $obj) { if (strlen($obj) > 0) { $items = explode(',', $obj); $item = $items[0]; $id = explode('=', $items[0], 2); if (count($id) == 1 or !ctype_digit($id[1])) $name = $id[0]; else $name = $id[0].$id[1]; if (strlen($name) == 0) $name = 'null'; if (isset($data[$name])) { $num = 1; while (isset($data[$name.$num])) $num++; $name .= $num; } $counter = 0; foreach ($items as $item) { $id = explode('=', $item, 2); if (count($id) == 2) $data[$name][$id[0]] = $id[1]; else { $data[$name][$counter] = $id[0]; } $counter++; } } } return $data; } return null;
} catch (Exception $e) { return $e->getMessage(); } } private function getsock($addr, $port) { $socket = null; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false || $socket === null) { $error = socket_strerror(socket_last_error()); $msg = "socket create(TCP) failed"; echo "ERR: $msg '$error'\n"; return null; } $res = socket_connect($socket, $addr, $port); if ($res === false) { $error = socket_strerror(socket_last_error()); $msg = "socket connect($addr,$port) failed"; echo "ERR: $msg '$error'\n"; socket_close($socket); return null; } return $socket; } private function readsockline($socket) { $line = ''; while (true) { $byte = socket_read($socket, 1); if ($byte === false || $byte === '') break; if ($byte == "\0") break; $line .= $byte; } return $line; } private function formatTime($value) { $s = $value % 60; $value -= $s; $value /= 60; if ($value == 0) $ret = $s.'s'; else { $m = $value % 60; $value -= $m; $value /= 60; if ($value == 0) $ret = sprintf("%dm $b%02ds", $m, $s); else { $h = $value % 24; $value -= $h; $value /= 24; if ($value == 0) $ret = sprintf("%dh $b%02dm $b%02ds", $h, $m, $s); else { if ($value == 1) $days = ''; else $days = 's'; $ret = sprintf("%dday$days, $b%02dh $b%02dm $b%02ds", $value, $h, $m, $s); } } } return $ret; } private function formatNumber($value) { $parts = explode('.', $value, 2); if (count($parts) == 1) $dec = ''; else $dec = '.'.$this->endzero($parts[1]); $ret = number_format((float)$parts[0]).$dec; return $ret; } private function endzero($num) { $rep = preg_replace('/0*$/', '', $num); if ($rep === '') $rep = '0'; return $rep; } function update( $new_instance, $old_instance ) { $instance = $old_instance;
$instance['title'] = strip_tags( $new_instance['title'] ); $instance['ip'] = strip_tags( $new_instance['ip'] ); $instance['port'] = strip_tags( $new_instance['port'] ); $instance['show_info'] = $new_instance['show_info'];
return $instance; } function form( $instance ) {
$defaults = array( 'title' => __('My Miner', 'example'), 'ip' => __('127.0.0.1', 'example'), 'port' => 4028, 'show_info' => true ); $instance = wp_parse_args( (array) $instance, $defaults ); ?>
<p> <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e('Title:', 'example'); ?></label> <input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" style="width:100%;" /> </p>
<p> <label for="<?php echo $this->get_field_id( 'ip' ); ?>"><?php _e('IP Address:', 'example'); ?></label> <input id="<?php echo $this->get_field_id( 'ip' ); ?>" name="<?php echo $this->get_field_name( 'ip' ); ?>" value="<?php echo $instance['ip']; ?>" style="width:100%;" /> </p>
<p> <label for="<?php echo $this->get_field_id( 'port' ); ?>"><?php _e('Port:', 'example'); ?></label> <input id="<?php echo $this->get_field_id( 'port' ); ?>" name="<?php echo $this->get_field_name( 'port' ); ?>" value="<?php echo $instance['port']; ?>" style="width:100%;" /> </p>
<p> <input class="checkbox" type="checkbox" <?php checked( $instance['show_info'], true ); ?> id="<?php echo $this->get_field_id( 'show_info' ); ?>" name="<?php echo $this->get_field_name( 'show_info' ); ?>" /> <label for="<?php echo $this->get_field_id( 'show_info' ); ?>"> <?php _e('Display info publicly?', 'example'); ?></label> </p>
<?php } }
?> Installation: - Copy & Paste source code into a new file MinerWidget.php
- Place the file inside your WordPress installation folder under WORDPRESS_ROOT/wp-content/plugins/MinerWidget/
- Enable the widget from wordpress Plugins page, available in Dashboard
- Place and configure the widget from the widget page wherever you want
Enjoy it 
|
|
|
Hi everybody,
I'm a developer and I would like to collect data coming out from CGMiner to a database (mysql or sqlite). I've been reading I can (maybe) do that running a php script from a cron job. Do you think is a viable solution? Do you know better ways?
Thanks in advance, Any help is greatly appreciated
|
|
|
Hi, a few days ago I've been reading of a mining pool which allow to mine on alt-coins (SHA256) and pays in BTC. I'm not able to find this info anymone... Can anyone help me? Thanks D.
|
|
|
Hi everybody, are you aware of any services other than Virwox or QuickBTC to buy BTCs with CCs? Thanks in advance
|
|
|
6 days waiting verification without any feedback... You should not advertise it as 15-20minutes.
|
|
|
Final considerations on comparison of three Pools (Slush, BTCGuild, 50BTC). Beside the fact I would love to have merged mining, I cannot ignore that earnings on Slush are better and mostly important, payments are done with full 8 digits (you have to play a little with the threshold, but it's easy to transfer everything to your wallet). So for now I'll stick with him/them.
This are my results anyway: Earnings per Day= Slush Pool, 50BTC, BTCGuild Variance per Day=50BTC, BTCGuild, Slush Payout methods = 50BTC, Slush, BTCGuild Statistics = 50BTC, Slush, BTCGuild Merged Mining = BTCGuild only
|
|
|
It would be even more nice to have NMC again 
|
|
|
It's been four/five days at 50btc. Here my results: 50btc 1.0 GH/s => 0.007 BTC per day PRO: - Very very nice looking website - Nice statistics - Nice security features - Small variance due to PPS - You can have a manual payout with 8 digits CONS: - Automatic payout are not made with full 8 digits - It's been quite unstable the latest 4 days. While they have small downtimes (seconds or minutes), it make me worry every time (green light green light on my erupters  - No merged mining (NMC)
|
|
|
I've completed a 3 days testing @BTCGuild. while the website is really cool indeed, the only thing I liked was the NMC merged mining. About BTC, payout is less than Slush but with less variance. So to compare (my opinion based on my small miners) Slush Pool: 1,0Gh/s => 0.009 - 0.010 PRO: - Statistics are nice, I prefer to see earning than speed (which for a 24/7 miner should stay fixed) - A bit more profitable than BTCGuild - Payout are made with full 8 digits CONS: - Lack of merged mining - Lot of variance BTCGuild 1Gh/s => 0.007 PRO: - Website is super nice - NMC Merged mining - Less variance CONS: - Profits are smaller - Payout are not made with full 8 digits While NMC are a nice plus, for me the winner is Slush Pool. I'm now heading to 50btc to continue with testing 
|
|
|
|