grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 11, 2013, 12:13:43 PM |
|
Hello grau, i've been playing with your code for a while - nice work ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Questions: 1. How about some sort of contracts interface? How do you plan on implementing this? 2. How do I connect to a specified set of IPs only (mimic connect=ip option in bitcoin.conf). FixedAddressDiscorvery makes listed IPs as discovery nodes that can relay their cached nodes to my server instance. After a while my server hits timeout(?) and connects to those relayed nodes. 3. On testnet3 i cannot connect to nodes with getAddress ().isReachable 1000ms timeout, works fine when i change it to 4000ms; temp fix for BBST-7 for me. Hi netrikare, thanks for evaluating. I am glad you like it. 1. Contracts is an exciting subject. BOP is however a commercial not a research project, therefore I would do whatever needed for a concrete use case, but do not currently plan invest into a generic interface. If you have the bandwidth and ideas I am however ready to discuss or even take a pull. 2. I think that you need to lower the number of connections required (see below from production.xml) to that of the addresses listed in the FixedAddressDiscovery, otherwise the discovery will try to locate more peers. <bean id="bitcoinNetwork" class="com.bitsofproof.supernode.core.BitcoinNetwork"> <constructor-arg> <value>10</value> </constructor-arg> <!-- Number of connections desired -->
3. Thanks for the hint on BBST-7! You already discovered our JIRA ( http://bitsofproof.com:8081/browse/BBST). Feel free to raise any issues you face there.
|
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 22, 2013, 01:03:18 PM |
|
I am pleased to announce that the server is now available in an upgraded Version 1.1. What is new? 1. Enhanced HD Wallet - Read only wallet and server side scan for all addresses derivable from an extended public key. 2. Never out of sync with Satoshi - optional Master-Slave operation option effectively eliminates the risk of a fork. 3. Simplified API Read about the features in detail on the documentation site: http://bitsofproof.com:8082/display/BPD/What+is+new+in+1.1
|
|
|
|
zvs
Legendary
Offline
Activity: 1680
Merit: 1000
https://web.archive.org/web/*/nogleg.com
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 23, 2013, 11:35:37 PM |
|
BOP just got a new 12 CPU 48 GB RAM server. Wow, I suppose you meant 12 cores ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) BTW: I watched your presentation and the project seems great! Yes, they are likely less CPUs, but 12 cores for sure. I order them by specifying the CPU power I want to use, how the data center maps that is up to them. So they could have given you 2x Xeon L7455? *scratch*
|
|
|
|
solracx
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 24, 2013, 07:57:30 PM |
|
Does this supernode support mining of the coins like the bitcoind?
|
ZenithCoin - Sustainable Scrypt Based Crypto Currency
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 24, 2013, 09:14:48 PM Last edit: June 24, 2013, 09:51:54 PM by grau |
|
Does this supernode support mining of the coins like the bitcoind?
In case you mean support for miner protocols like getwork RPC, then no support for that. As of now I see no upside mining Bitcoin with this, not for the product and not for the network. In case you are considering to develop an alt-coin, then it would not be a big trick to add CPU mining with your rules as it has a memory pool of unconfirmed transactions.
|
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 24, 2013, 09:45:02 PM |
|
Added a new demo project that shows how to sweep a private key to an address using the client library and a BOP server. https://github.com/bitsofproof/bop-sweepThe trick can be done by a few lines, that execute in seconds. (The project is more elaborate) // connect a BOP Enterprise Bitcoin Server BCSAPI api = getServer (getConnectionFactory (url, user, password));
// create an account manager that uses arbitary list of keys KeyListAccountManager account = new KeyListAccountManager ("A", 0);
// parse the WIF format key as known from bitcoind and add to the account manager account.addKey (ECKeyPair.parseWIF (key));
// send the address of the key to the server and retrieve all unspent output to it account.sync (api);
// convert address from base58, create and sign transaction that spends all confirmed funds to the address Transaction transaction = account.pay (AddressConverter.fromSatoshiStyle (address, api.isProduction () ? 0x0 : 0x6f), account.getConfirmed (), FEE);
// send the signed transaction to the server, so it broadcasts to the network api.sendTransaction (transaction);
Note that the key does not travel to the server, only its address to retrieve all unspent outputs and then the final signed transaction sending those outputs to the destination address.
|
|
|
|
solracx
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 24, 2013, 09:58:39 PM |
|
Does this supernode support mining of the coins like the bitcoind?
In case you mean support for miner protocols like getwork RPC, then no support for that. As of now I see no upside mining Bitcoin with this, not for the product and not for the network. In case you are considering to develop an alt-coin, then it would not be a big trick to add CPU mining with your rules as it has a memory pool of unconfirmed transactions. So as I undestand the getwork protocol in not supported. So to create a block with a coin base and the mechanism to do that, is not in the current code base? What I mean is that bitcoind has a setgenerate true argument that starts up a bitcoinminer in CPU. Is that part implemented or does that need to be reimplemented in your supernode?
|
ZenithCoin - Sustainable Scrypt Based Crypto Currency
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 24, 2013, 10:09:30 PM |
|
Does this supernode support mining of the coins like the bitcoind?
In case you mean support for miner protocols like getwork RPC, then no support for that. As of now I see no upside mining Bitcoin with this, not for the product and not for the network. In case you are considering to develop an alt-coin, then it would not be a big trick to add CPU mining with your rules as it has a memory pool of unconfirmed transactions. So as I undestand the getwork protocol in not supported. So to create a block with a coin base and the mechanism to do that, is not in the current code base? What I mean is that bitcoind has a setgenerate true argument that starts up a bitcoinminer in CPU. Is that part implemented or does that need to be reimplemented in your supernode? There is a unit/integration test that shows how to build a chain on the fly to test the API: https://github.com/bitsofproof/supernode/blob/1.1/server/src/test/java/com/bitsofproof/supernode/test/APITest.javaThe mempool is in https://github.com/bitsofproof/supernode/blob/1.1/server/src/main/java/com/bitsofproof/supernode/core/TxHandler.javacalled unconfirmed. I have however no motivation to put those pieces together into a CPU miner as there is no upside for that in Bitcoin and have no alt-coin customer yet. Let me know if you have commercial interest or want to work on it.
|
|
|
|
solracx
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
June 24, 2013, 11:57:55 PM |
|
I'll probably work on it then.
|
ZenithCoin - Sustainable Scrypt Based Crypto Currency
|
|
|
Amitabh S
Legendary
Offline
Activity: 1001
Merit: 1005
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 02, 2013, 09:36:48 PM |
|
Unable to build using mvn My setup: win7 pro (64bit) java version "1.6.0_43" [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] \code\Bitcoin\bitsofproof\supernode\api\src\main\java\com\bitsofproof\supernode\api\BCSAPIMessage.java:[11,22] com.bitsofproof.supernode.api.BCSAPIMessage.Ping is not abstract and does not override abstract method newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent) in com.google.protobuf.GeneratedMessage ... full error here http://pastebin.com/GfUVKvYi
|
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 04, 2013, 12:52:43 PM |
|
Why not follow the build instructions and install protobuf 2.4 1?
|
|
|
|
marcoski711
Newbie
Offline
Activity: 15
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 20, 2013, 12:27:47 PM |
|
Grau, where is the schema now located, can't find it via that link? Thanks.
|
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 20, 2013, 12:46:16 PM |
|
as of 1.2 the relational schema is no longer part of the community version, but moved to the audit server.
|
|
|
|
alp
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 28, 2013, 08:40:20 PM |
|
A dumb question I'm sure, but how to I set up users and passwords on a community edition server? I have a node running and am trying to connect with the bop-api-example and have had no luck connecting with a user and password.
|
I am looking for a good signature. Here could be your advertisement
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
September 29, 2013, 08:00:02 AM |
|
The authentication is handled by the message broker. The community server is the open source code that you can build and run on your own with your own message broker process. e.g. ActiveMQ, so username and password depends on your configuration.
In case you would like to use an Enterprise Server hosted by BOP, then please drop me a mail or a PM.
|
|
|
|
freeminer
Newbie
Offline
Activity: 35
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
October 01, 2013, 09:38:47 PM |
|
Is bitsofproof.com down ![Huh](https://bitcointalk.org/Smileys/default/huh.gif)
|
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
October 02, 2013, 05:47:00 AM |
|
You were "lucky" to hit the maintenance window our hosting provider announced and used.
|
|
|
|
freeminer
Newbie
Offline
Activity: 35
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
October 02, 2013, 11:12:32 AM |
|
You were "lucky" to hit the maintenance window our hosting provider announced and used.
Um, I tried to open it on Sunday and Monday and it was down too, so maybe you need to change your provider.
|
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
October 02, 2013, 04:51:53 PM |
|
You were "lucky" to hit the maintenance window our hosting provider announced and used.
Um, I tried to open it on Sunday and Monday and it was down too, so maybe you need to change your provider. I am quite sure it was not down. Maybe routing problems. Where are you accessing from?
|
|
|
|
grau (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
December 08, 2013, 09:43:28 PM |
|
Added BIP39 support, that passes Trezor's test vectors. https://github.com/bitsofproof/supernode/blob/master/api/src/main/java/com/bitsofproof/supernode/wallet/BIP39.javaAdded Shamir's secret shares algorithm https://github.com/bitsofproof/supernode/blob/master/api/src/main/java/com/bitsofproof/supernode/wallet/ShamirsSecretSharing.javaYou can create a random word list e.g.: SecureRandom random = new SecureRandom (); byte[] seed = new byte[16]; random.nextBytes (seed); System.out.println (BIP39.encode (seed, "")); // assume it prints: // mind evil language crouch legal brave insane bid speed notice material scheme
You may now create a BIP32 master out of a word list as e.g. String mnemonic = "mind evil language crouch legal brave insane bid speed notice material scheme"; ExtendedKey key = ExtendedKey.create (BIP39.decode (mnemonic, "")); System.out.println (key.serialize (true)); // prints: xprv9s21ZrQH143K2uwgrphL7P5ePDPBp8ukjVT3CspHyvdHigHY9DAYQX6D6dkBThQCgmJskkzTbHFy6ZGvz3Vm8GzkGuDAWmvqsKrityeTW5W
Instead of storing the secret word list you could create 3 backups of which 2 is needed to recreate the list (and one is useless alone). List<String> backups = ShamirsSecretSharing.issueMnemonicShares (BIP39.decode (mnemonic, ""), 3, 2, ""); for ( String b : backups ) { System.out.println (b); } // prints: // find worry owner drill category cancel error stock inspire place bullet blind wood course spend gather response fat // huge bulk human envelope theory van cricket cattle reopen divorce alley upper pig afford spy mass design reduce // noodle predict ancient tuition still result garbage melt wise angle island peace rate cereal outside actual more lock
Now take any two of the three to reconstruct the key: List<String> pick = new ArrayList<> (); pick.add (backups.get (0)); pick.add (backups.get (2)); ExtendedKey recreated = ExtendedKey.create (ShamirsSecretSharing.reconstructFromMnemonicShares (pick, "")); System.out.println (recreated.serialize (true)); // prints again: // prints: xprv9s21ZrQH143K2uwgrphL7P5ePDPBp8ukjVT3CspHyvdHigHY9DAYQX6D6dkBThQCgmJskkzTbHFy6ZGvz3Vm8GzkGuDAWmvqsKrityeTW5W
Use the passphrase option (the "" in parameters) to get plausible deniability of the wallet, since you may fund more than one passphrase.
|
|
|
|
|