ports/172595: New port: net-p2p/pushpoold bitcoin push-mining pool server

Daniel Morante daniel at morante.net
Fri Oct 12 00:54:20 UTC 2012


The following reply was made to PR ports/172595; it has been noted by GNATS.

From: Daniel Morante <daniel at morante.net>
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: ports/172595: New port: net-p2p/pushpoold bitcoin push-mining
 pool server
Date: Thu, 11 Oct 2012 08:39:14 -0400

 This is a multi-part message in MIME format.
 --------------010400050505050505050401
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 Added in USE_PYTHON to Makefile.
 
 --------------010400050505050505050401
 Content-Type: text/plain; charset=windows-1252;
  name="pushpoold.shar"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="pushpoold.shar"
 
 # This is a shell archive.  Save it in a file, remove anything before
 # this line, and then unpack it by entering "sh file".  Note, it may
 # create directories; files and directories will be owned by you and
 # have default permissions.
 #
 # This archive contains:
 #
 #	pushpoold
 #	pushpoold/Makefile
 #	pushpoold/pkg-descr
 #	pushpoold/pkg-plist
 #	pushpoold/distinfo
 #	pushpoold/files
 #	pushpoold/files/patch-msg.c
 #	pushpoold/files/patch-server.c
 #	pushpoold/files/patch-util.c
 #	pushpoold/files/patch-Makfile.am
 #	pushpoold/files/example-blkmon.cfg
 #	pushpoold/files/example-cfg.json
 #	pushpoold/files/pushpool.in
 #	pushpoold/files/pushpool.conf.sample
 #	pushpoold/files/blkmon.conf.sample
 #	pushpoold/files/pkg-message.in
 #
 echo c - pushpoold
 mkdir -p pushpoold > /dev/null 2>&1
 echo x - pushpoold/Makefile
 sed 's/^X//' >pushpoold/Makefile << '5b840b30ce618fd7a2a45dff30aa07ce'
 X# $FreeBSD$
 X
 XPORTNAME=	pushpoold
 XPORTVERSION=	0.5.1
 XCATEGORIES=	net-p2p
 X
 XMAINTAINER=	daniel at morante.net
 XCOMMENT=	A bitcoin push-mining pool server
 X
 XBUILD_DEPENDS=	${LOCALBASE}/include/argp.h:${PORTSDIR}/devel/argp-standalone
 XLIB_DEPENDS=	event-1:${PORTSDIR}/devel/libevent \
 X		memcached:${PORTSDIR}/databases/libmemcached \
 X		jansson:${PORTSDIR}/devel/jansson \
 X		curl:${PORTSDIR}/ftp/curl
 X
 XUSE_GITHUB=	yes
 XGH_ACCOUNT=	jgarzik
 XGH_PROJECT=	pushpool
 XGH_COMMIT=	4d959b8
 XGH_TAGNAME=	v${PORTVERSION}
 X
 XUSE_AUTOTOOLS=	autoconf autoheader libtool automake aclocal
 XACLOCAL_ARGS=	-I m4
 XAUTOMAKE_ARGS=	--gnu --add-missing --copy
 XUSE_PKGCONFIG=	yes
 XUSE_OPENSSL=	yes
 X
 XCONFIGURE_ENV=	PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" PTHREAD_LIBS="${PTHREAD_LIBS}"
 XCFLAGS+=	-I${LOCALBASE}/include
 XLDFLAGS+=	-L${LOCALBASE}/lib
 X
 XUSE_MYSQL=	yes
 XUSE_PYTHON=	yes
 XUSE_RC_SUBR=	pushpool
 XSUB_FILES=	pkg-message
 X
 Xpost-install:
 X.if !defined(NOPORTEXAMPLES)
 X	${MKDIR} ${EXAMPLESDIR}
 X	${INSTALL_MAN} ${FILESDIR}/pushpool.conf.sample ${EXAMPLESDIR}
 X	${INSTALL_MAN} ${FILESDIR}/blkmon.conf.sample ${EXAMPLESDIR}
 X	${INSTALL_MAN} ${FILESDIR}/example-blkmon.cfg ${EXAMPLESDIR}
 X	${INSTALL_MAN} ${FILESDIR}/example-cfg.json ${EXAMPLESDIR}
 X.endif
 X
 X.include <bsd.port.mk>
 5b840b30ce618fd7a2a45dff30aa07ce
 echo x - pushpoold/pkg-descr
 sed 's/^X//' >pushpoold/pkg-descr << '821777b5bcdb85ea48e5bd8e06f0587a'
 XA bitcoin push-mining pool server.
 X
 XPushpools is an open source mining pool server.  A mining pool server is an 
 XHTTP JSON-RPC proxy to backend bitcoind processes.
 821777b5bcdb85ea48e5bd8e06f0587a
 echo x - pushpoold/pkg-plist
 sed 's/^X//' >pushpoold/pkg-plist << '9a6241c6be95f9eef1a62a86ac909974'
 Xsbin/pushpoold
 Xsbin/blkmond
 X%%PORTEXAMPLES%%%%EXAMPLESDIR%%/blkmon.conf.sample
 X%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pushpool.conf.sample
 X%%PORTEXAMPLES%%%%EXAMPLESDIR%%/example-blkmon.cfg
 X%%PORTEXAMPLES%%%%EXAMPLESDIR%%/example-cfg.json
 X%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%
 9a6241c6be95f9eef1a62a86ac909974
 echo x - pushpoold/distinfo
 sed 's/^X//' >pushpoold/distinfo << '3b67fb5b21fb470eb0db0fd4890a0c5b'
 XSHA256 (pushpoold-0.5.1.tar.gz) = 8692588700d82bb30f869234f9da23ef623a0a01613004577b1ef91c23b8e07d
 XSIZE (pushpoold-0.5.1.tar.gz) = 48555
 3b67fb5b21fb470eb0db0fd4890a0c5b
 echo c - pushpoold/files
 mkdir -p pushpoold/files > /dev/null 2>&1
 echo x - pushpoold/files/patch-msg.c
 sed 's/^X//' >pushpoold/files/patch-msg.c << 'c8196cd1ca9b8d8e89f382037c9e009c'
 X--- msg.c	2011-06-27 13:57:30.000000000 -0400
 X+++ msg.c	2012-10-10 03:00:47.000000000 -0400
 X@@ -27,7 +27,11 @@
 X #include <unistd.h>
 X #include <string.h>
 X #include <jansson.h>
 X-#include <byteswap.h>
 X+# define bswap_64 __bswap64 
 X+# define bswap_32 __bswap32 
 X+# define bswap_16 __bswap16 
 X+# define __BIG_ENDIAN__ (_BYTE_ORDER == _BIG_ENDIAN)
 X+#include <sys/endian.h>
 X #include <openssl/sha.h>
 X #include <syslog.h>
 X #include "server.h"
 c8196cd1ca9b8d8e89f382037c9e009c
 echo x - pushpoold/files/patch-server.c
 sed 's/^X//' >pushpoold/files/patch-server.c << '55cc764e3b9791d34dd406a70f67a10e'
 X--- server.c	2011-06-27 13:57:30.000000000 -0400
 X+++ server.c	2012-10-10 03:05:31.000000000 -0400
 X@@ -38,7 +38,7 @@
 X #include <zlib.h>
 X #include <netdb.h>
 X #include <stdarg.h>
 X-#include <endian.h>
 X+#include <sys/endian.h>
 X #include <openssl/sha.h>
 X #include <argp.h>
 X #include "server.h"
 55cc764e3b9791d34dd406a70f67a10e
 echo x - pushpoold/files/patch-util.c
 sed 's/^X//' >pushpoold/files/patch-util.c << 'd258bc9144ec8c92fce63bb0ef9dd329'
 X--- util.c	2012-10-10 04:45:31.000000000 -0400
 X+++ util.c	2012-10-10 04:42:23.000000000 -0400
 X@@ -26,7 +26,6 @@
 X #include <stdlib.h>
 X #include <stdio.h>
 X #include <syslog.h>
 X-#include <alloca.h>
 X #include <errno.h>
 X #include <unistd.h>
 X #include <string.h>
 d258bc9144ec8c92fce63bb0ef9dd329
 echo x - pushpoold/files/patch-Makfile.am
 sed 's/^X//' >pushpoold/files/patch-Makfile.am << 'abd9ac4db2ed593820f9a94384ef7a09'
 X--- Makefile.am	2011-06-27 13:57:30.000000000 -0400
 X+++ Makefile.am	2012-10-11 01:08:13.000000000 -0400
 X@@ -13,4 +13,4 @@
 X pushpoold_LDFLAGS = $(PTHREAD_FLAGS)
 X pushpoold_LDADD	= @LIBCURL@ @EVENT_LIBS@ @PTHREAD_LIBS@ @JANSSON_LIBS@ \
 X 		  @CRYPTO_LIBS@ @Z_LIBS@ @LIBMEMCACHED_LIBS@ \
 X-		  @SQLITE3_LDFLAGS@ @MYSQL_LDFLAGS@ @POSTGRESQL_LDFLAGS@
 X+		  @SQLITE3_LDFLAGS@ @MYSQL_LDFLAGS@ @POSTGRESQL_LDFLAGS@ -largp
 abd9ac4db2ed593820f9a94384ef7a09
 echo x - pushpoold/files/example-blkmon.cfg
 sed 's/^X//' >pushpoold/files/example-blkmon.cfg << 'e88776b2810429919b9eec455a4d2063'
 Xhost=127.0.0.1
 Xport=8333
 Xpid=/tmp/pushpoold.pid
 X
 e88776b2810429919b9eec455a4d2063
 echo x - pushpoold/files/example-cfg.json
 sed 's/^X//' >pushpoold/files/example-cfg.json << 'dfe0ac53fdb9af698e374ba762d52eef'
 X{
 X	# network ports
 X	"listen" : [
 X		# binary protocol (default), port 8336
 X		{ "port" : 8336 },
 X
 X		# HTTP JSON-RPC protocol, port 8337
 X		{ "port" : 8337, "protocol" : "http-json" },
 X
 X		# HTTP JSON-RPC protocol, port 8339,
 X		# with trusted proxy appserver.example.com forwarding
 X		# requests to us
 X		{ "port" : 8337, "protocol" : "http-json",
 X		  "proxy" : "appserver.example.com" },
 X
 X		# binary protocol, localhost-only port 8338
 X		{ "host" : "127.0.0.1", "port" : 8338, "protocol" : "binary" }
 X	],
 X
 X	# database settings
 X	"database" : {
 X		"engine" : "sqlite3",
 X		"name" : "/tmp/data.sqlite",
 X		"stmt.pwdb" :
 X		  "SELECT password FROM pool_worker WHERE username = ?"
 X
 X		# ... or ...
 X
 X		"engine" : "mysql",
 X
 X		# 'host' defaults to localhost, if not specified
 X		"host" : "mysql.example.com",
 X
 X		# 'port' uses proper default port for the DB engine,
 X		# if not specified
 X		"port" : 12121,
 X
 X		"name" : "mydatabasename",
 X		"username" : "myuser",
 X		"password" : "mypass",
 X
 X		"stmt.pwdb" :
 X		  "SELECT password FROM pool_worker WHERE username = ?"
 X
 X		# ... or ...
 X
 X		"engine" : "postgresql",
 X
 X		"host" : "db.example.com",
 X
 X		"port" : 12121,
 X
 X		"name" : "mydatabasename",
 X		"username" : "myuser",
 X		"password" : "mypass",
 X
 X		"stmt.pwdb" :
 X		  "SELECT password FROM pool_worker WHERE username = $1"
 X	},
 X
 X	# cache settings
 X	"memcached" : {
 X		"servers" : [
 X			{ "host" : "127.0.0.1", "port" : 11211 }
 X		]
 X	},
 X
 X	"pid" : "/tmp/pushpoold.pid",
 X
 X	# overrides local hostname detection
 X	"forcehost" : "localhost.localdomain",
 X
 X	"log.requests" : "/tmp/request.log",
 X	"log.shares" : "/tmp/shares.log",
 X
 X	# the server assumes longpolling (w/ SIGUSR1 called for each blk)
 X	"longpoll.disable" : false,
 X
 X	# length of time to cache username/password credentials, in seconds
 X	"auth.cred_cache.expire" : 75,
 X
 X	# RPC settings
 X	"rpc.url" : "http://127.0.0.1:8332/",
 X	"rpc.user" : "myusername",
 X	"rpc.pass" : "mypassword",
 X
 X	# rewrite returned 'target' to difficulty-1?
 X	"rpc.target.rewrite" : true,
 X
 X	# allow clients to update the ntime field of their work
 X	"roll.ntime.disable" : false
 X}
 dfe0ac53fdb9af698e374ba762d52eef
 echo x - pushpoold/files/pushpool.in
 sed 's/^X//' >pushpoold/files/pushpool.in << '71430ad33ae8ef8626278882670d58d2'
 X#!/bin/sh
 X
 X# $FreeBSD$
 X#
 X# PROVIDE: pushpool
 X# REQUIRE: LOGIN bitcoin
 X# KEYWORD: shutdown
 X#
 X# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
 X# to enable this service:
 X#
 X# pushpool_enable (bool):	Set to NO by default.
 X#				Set it to YES to enable pushpool.
 X# pushpool_config (path):	Set to %%PREFIX%%/etc/pushpool.conf
 X#				by default.
 X
 X. /etc/rc.subr
 X
 Xname=pushpool
 Xrcvar=`set_rcvar`
 X
 Xload_rc_config $name
 X
 X: ${pushpool_enable:="NO"}
 X: ${pushpool_config="%%PREFIX%%/etc/pushpool.conf"}
 X
 Xcommand=%%PREFIX%%/sbin/pushpoold
 Xpidfile="/var/run/${name}.pid"
 X
 Xcommand_args="--config=$pushpool_config --pid=$pidfile"
 X
 Xrun_rc_command "$1"
 71430ad33ae8ef8626278882670d58d2
 echo x - pushpoold/files/pushpool.conf.sample
 sed 's/^X//' >pushpoold/files/pushpool.conf.sample << 'e423f15c11975b07f447367618c19e7d'
 X{
 X	# network ports
 X	"listen" : [
 X		# binary protocol (default), port 8342
 X		{ "port" : 8342 },
 X
 X		# HTTP JSON-RPC protocol, port 8341
 X		{ "port" : 8341, "protocol" : "http-json" },
 X
 X		# HTTP JSON-RPC protocol, port 8344,
 X		# with trusted proxy appserver.example.com forwarding
 X		# requests to us
 X		{ "port" : 8344, "protocol" : "http-json",
 X		  "proxy" : "127.0.0.1" },
 X
 X		# binary protocol, localhost-only port 8338
 X		{ "host" : "127.0.0.1", "port" : 8338, "protocol" : "binary" }
 X	],
 X
 X	# database settings
 X	"database" : {
 X		"engine" : "mysql",
 X		"host" : "localhost",
 X		"port" : 3306,
 X		"name" : "pushpoold",
 X		"username" : "pushpoold",
 X		"password" : "pushpoold12345",
 X		"sharelog" : true,
 X		"stmt.pwdb":"SELECT `password` FROM `pool_worker` WHERE `username` = ?",
 X		"stmt.sharelog":"INSERT INTO shares (rem_host, username, our_result, upstream_result, reason, solution) VALUES (?, ?, ?, ?, ?, ?)"
 X
 X	},
 X
 X	# cache settings
 X	"memcached" : {
 X		"servers" : [
 X			{ "host" : "localhost", "port" : 11211 }
 X		]
 X	},
 X
 X	#"pid" : "/var/run/pushpool.pid",
 X
 X	# overrides local hostname detection
 X	"forcehost" : "localhost.localdomain",
 X
 X	"log.requests" : "/var/log/pushpool-request.log",
 X	"log.shares" : "/var/log/pushpool-shares.log",
 X
 X	# the server assumes longpolling (w/ SIGUSR1 called for each blk)
 X	"longpoll.disable" : false,
 X
 X	# length of time to cache username/password credentials, in seconds
 X	"auth.cred_cache.expire" : 75,
 X
 X	# RPC settings | Notice how this ISN'T port number 8332 this is becuase the same port number should not becuase inconjunction with the JSON RPC port other wise you'll get 500 errors
 X	"rpc.url" : "http://127.0.0.1:8333/",
 X	"rpc.user" : "admin",
 X	"rpc.pass" : "1234567890",
 X
 X	# rewrite returned 'target' to difficulty-1?
 X	"rpc.target.rewrite" : true
 X}
 e423f15c11975b07f447367618c19e7d
 echo x - pushpoold/files/blkmon.conf.sample
 sed 's/^X//' >pushpoold/files/blkmon.conf.sample << 'bdf8758ddd6afde69afb73e67ec44841'
 Xhost=127.0.0.1
 Xport=8333
 Xpid=/var/run/pushpool.pid
 X
 bdf8758ddd6afde69afb73e67ec44841
 echo x - pushpoold/files/pkg-message.in
 sed 's/^X//' >pushpoold/files/pkg-message.in << '2fc28ea9e111215c14bbea6a8d0a1c6b'
 X*******************************************************************
 XTo configure pushpoold, please copy: 
 X%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pushpool.conf.sample to %%PREFIX%%/etc/pushpool.conf
 Xand edit this file:
 X
 Xcp %%PORTEXAMPLES%%%%EXAMPLESDIR%%/pushpool.conf.sample %%PREFIX%%/etc/pushpool.conf
 X
 XTo run the pushpoold server at startup, add the following
 Xsettings to your /etc/rc.conf
 X
 Xpushpool_enable="YES"
 X
 X*******************************************************************
 2fc28ea9e111215c14bbea6a8d0a1c6b
 exit
 
 
 --------------010400050505050505050401--


More information about the freebsd-ports-bugs mailing list