Skip to content

Commit 3c31bc1

Browse files
committed
add BOP Enterprise Bitcoin Server
1 parent 34caf26 commit 3c31bc1

4 files changed

Lines changed: 33 additions & 21 deletions

File tree

README.md

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
11
BOP Community Bitcoin Server
22
============================
33

4-
This software enables your application to send/receive Bitcoin payments or to data mine the network's transaction history, with ease.
4+
This software enables your application to send/receive Bitcoin payments.
55

66
You may run it stand-alone utilizing its own validation engine or as a slave behind the Satoshi client so it accepts exactly what the 'reference client' does. In either case it builds a fully indexed block chain of transactions stored in LevelDB.
77

8-
The server process handles peer-to-peer communication with the network and serves clients connected to it through a message bus. Wallet(s) are implemented by the client library and transactions are also signed at the client side, therefore it is safe to operate the Server in a remote environment as it does not store or receive private keys.
8+
The server process handles peer-to-peer communication with the network and serves clients connected to it through a message bus. Wallet(s) are implemented by the client library and transactions are also signed at the client side. Private keys, that is the control of Bitcoins always remain at the client side.
99

10-
Bits of Proof offers professionally hosted server instances for commercial use, that share and build on this code base:
10+
The BOP Community Bitcoin Server is a fully functional demonstration of BOP technology, that we use to build commercial applications such as wallets and exchanges.
1111

12-
* BOP Enterprise Bitcoin Server - for very high volume multiple and hierarchical wallet support. Don't despair with the 'reference client's geeky RPC calls design and poor performance. Use our intuitive, business friendly, high performance API and spend rather to develop your own business case.
13-
14-
* BopShop - Payment processor to accept Bitcoin on a website or in Person. Available both hosted by BOP or with white label to start your own Bitcoin payment processor business.
15-
16-
* BeBop - Simple but powerful mobile wallet best integrated with BopShop.
17-
18-
_Use our ready to go hosted BOP Server instance! Get an evaluation access, attractive pricing based on resources used or transactions processed from sales@bitsofproof.com_
12+
The BOP Enterprise Bitcoin Server supports the same API but has significantly improved performance e.g. in processing wallets using a large number of addresses. BOP offers professionally hosted Enterprise Bitcoin Servers, access to its latest Enterprise Server source code and support contracts. Please contact sales@bitsofproof.com for an offer.
1913

2014
Build the Community Server
2115
--------------------------
@@ -27,29 +21,37 @@ Make sure you have Maven3, JDK 7 (with JCE Unlimited Strength Policy Jurisdictio
2721

2822
mvn package
2923

24+
Let us assume the directory you would want to run the server is /home/bitsofproof/run.
25+
26+
cp server/target/bitsofproof-server-version-shaded.jar /home/bitsofproof/run
27+
cp server/src/main/resources/context/*.xml /home/bitsofproof/run
28+
cp server/src/main/resources/log4j.properties /home/bitsofproof/run
29+
mkdir /home/bitsofproof/run/signed-libs
30+
31+
Download http://www.bouncycastle.org/download/bcprov-jdk15on-150.jar
32+
cp bcprov-jdk15on-150.jar /home/bitsofproof/run/signed-libs/bcprov-jdk15on.jar
33+
3034
Run
3135
---
36+
cd /home/bitsofproof/run
37+
java -server -Xmx4g -jar target/server/target/bitsofproof-server-version-shaded.jar testnet3 memdb
3238

33-
java -server -Xmx2g -jar target/server/target/bitsofproof-server-1.2.0.jar testnet3 memdb
34-
35-
The final two parameters of the above example command line identify configuration contexts stored under server/src/main/resources/context. You have to choose one of the networks by specifying either testnet3 or production or slave, and a database layer, that could be (examples):
39+
The final two parameters of the above example command line identify configuration contexts you copied under *-profile.xml. You have to choose one of the networks by specifying either testnet3 or production or slave, and a database layer, that could be (examples):
3640

3741
* memdb - in memory database for tests
3842
* leveldb - LevelDB
3943

40-
To use the API of your local server you need to run a message broker process providing the infrastructure. Since the message bus offers authentication and a wide selection of transports, your installation will likely be unique and need to be reflected in server/src/main/resources/context/BCSAPI-profile.xml. You find example configurations for the message broker Apollo and Active MQ there. The complete command line for a production environment might be:
41-
42-
java -server -Xmx2g -jar target/server/target/bitsofproof-server-1.2.0.jar production leveldb BCSAPI apollo
44+
To use the API of your local server you need to run a message broker process providing the infrastructure. Since the message bus offers authentication and a wide selection of transports, your installation will likely be unique and need to be reflected in BCSAPI-profile.xml. You find example configurations for the message Active MQ there. The complete command line for a production environment might be:
4345

46+
java -server -Xmx4g -jar target/server/target/bitsofproof-server-version-shaded.jar production leveldb BCSAPI activemq
4447

4548
License
4649
-------
4750
Apache License, Version 2.0. See LICENSE file.
4851

4952
Donations
5053
---------
51-
In case you do not require professional services of Bits of Proof, but would like to honor its contribution to the Bitcoin community, please donate to:
54+
Please honor Bits of Proof's contribution to the Bitcoin community, and donate to:
5255

5356
1EuamejAs2Lcz1ZPNrEhLsFTLnEY29BYKU
5457

55-
Donations will finance social events of Bits of Proof developer.

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<properties>
4747
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4848
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
49-
<springframework.version>3.1.2.RELEASE</springframework.version>
49+
<springframework.version>4.0.0.RELEASE</springframework.version>
5050
<slf4j.version>1.6.6</slf4j.version>
5151
<java.compiler.version>1.7</java.compiler.version>
5252
<bouncycastle.version>1.50</bouncycastle.version>

server/src/main/java/com/bitsofproof/supernode/main/Main.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ public static void main (String[] args) throws Exception
6969
}
7070
}
7171
}
72-
ctx.load ("classpath:context/server.xml");
73-
ctx.load ("classpath:context/*-profile.xml");
72+
ctx.load ("file:server.xml");
73+
ctx.load ("file:*-profile.xml");
7474
ctx.refresh ();
7575
ctx.getBean (App.class).start (a.toArray (new String[0]));
7676
}

server/src/main/resources/context/server.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@
99
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
1010

1111
<context:property-placeholder />
12+
<bean id="log4jInitializer"
13+
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
14+
<property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
15+
<property name="targetMethod" value="initLogging" />
16+
<property name="arguments">
17+
<list>
18+
<value>log4j.properties</value>
19+
</list>
20+
</property>
21+
</bean>
1222

1323
<context:component-scan base-package="com.bitsofproof.supernode" />
1424

0 commit comments

Comments
 (0)