What is the ideal hardware configuration to become a B&C reputed signer?

2.08 Ghz quadcore might be a tad low indeed, would be an interesting benchmark to see how many wallets your setup could handle. I’m still torn between a VPS or home server, I do feel that especially in the long run (think a few years of signing) the VPS will be so much more costly in terms of monthly payments compared to a home server.

It’s not only the CPU frequency, which makes the N3150 anything but a high performance CPU…
The standard clock is 1.6 GHz, no hyperthreading available etc.
Have a look at the specs here, if you like:

A TDP of 6 Watts is nice :wink:

By themselves, the wallets will not contain any value. This is because all deposit addresses will be multisig. So if the network uses 8 of 15 multisig deposit addresses for a particular asset, 1 signer wallet would only contain 1 of the 8 signing keys needed to transfer funds. 8 wallets from 8 different signers would need to all be compromised in a short period of time in order for any value to be transferred.

Here is how a wallet will be used from its creation on through ongoing operations:

  1. Signers will create a wallet and add many addresses to it. These are normal single key addresses typically of a single asset type per wallet, such as NuBits.

  2. Signers will make multiple backups stored in multiple places to ensure keys are not lost.

  3. Signers will publish a reputed signer deposit public key list on the blockchain. This simply documents to the network something such as ‘this list of 1000 US NuBit public addresses belong to reputed signer Tom Joad and are available for use in fulfilling deposit address requests from exchange users’.

  4. When an exchange user consumes one of Tom Joad’s deposit public keys with a NuBit deposit address request, Tom Joad’s B&C client detects the deposit address request as it is broadcast to him over the B&C network. Using IP address, port and authentication info for his NuBit client that is stored in the B&C Exchange config file, Tom Joad’s B&C client calls the addmultisig RPC on his NuBit client, which stores the multisig redeem script in Tom Joad’s NuBit wallet for the exchange user’s NuBit deposit address. This process is entirely automated.

  5. As two validated orders match and fill, Tom Joad’s B&C Exchange client detects that one of his NuBit private keys is required to complete a NuBit transfer (all the info needed to detect this is on the blockchain). By examining the relevant deposit address request record, the B&C client knows what order Tom’s NuBit wallet needs to sign in. His B&C client watches the signings from other signers appear on the network. When it is his turn, Tom’s B&C client calls the signrawtransaction on his NuBit client and broadcasts the result on the B&C network. This process is also fully automated.

As Tom’s available NuBit deposit addresses are consumed by exchange users, he will need to publish one or more reputed signer deposit public key lists before all his available keys are consumed.

And that is the life of a reputed signer’s NuBit wallet. It is basically used to store NuBit addresses that are used to compose multisig deposit addresses and the redeem scripts for those multisig deposit addresses. When it is time to transfer funds, a NuBit private key and its associated redeem script from the wallet are used to sign a multisig NuBit transaction.

7 Likes

With regard to performance per frequency(Hz),

Arm Cortex A72 = Atom = 50% of skylake/apple A9
Cortex A53(Raspi3) = 50% A72/Atom

So before Apple releases a “ApplePi”, the rubbish A53/A72/Atom hardware could not performance well although they are low power consumption.

With regard to performance per power,

Skylake = Apple A9
Atom = A72
https://discuss.nubits.com/uploads/default/optimized/2X/f/f9c32973768e6c44dd8b6e84107c5009676dea43_1_666x500.jpg

As the red curve (A72) shows, if the signer CPU load exceeds the capability of iphone6s A9@1.3Ghz, i.e. iphone6S operating at 1.3-1.85Ghz, the Atom/A72 power consumption greater than iphone6s.

Could @sigmike tell me what kind of computation occupies the Raspberry’s CPU when minting? The SHA256?

If SHA256 type computation demand highly for signers, I’ll say that iPad pro (12.9") A9X outperforms Intel NUC’s i5 6200U at same CPU frequency(>50% advantage), It is said that A9/A9X has hardware acceleration for SHA.

http://browser.primatelabs.com/geekbench3/compare/5306241?baseline=5763225

This means we may write an iPhone app running on iphone6S and get same SHA-2 performance of intel I5 6200U.

What do you think about How long it should take to finish a fill. Because, each signer signed the rawtransaction and broadcasted to the corresponding asset network, and another siner signed it, do you think exchange user can accept the time? Or exchange users need not to care if their assets transacted or not, they just need care about if our exchange block recorded his history or not in B&C blockchain . If B&C exchange blockchain recorded the order fill, it would immediately display the corresponding change of user’s asset. And users need not wait for the completion of the transaction. But our signers should duty on the transaction.

2 Likes

If im correct, your question is about 0-conf and how a B&C 0-conf is just as trustworthy to B&C as a confirmed blockchain txn. Do we need to wait for btc to confirm? Can a user make trades with a frequency exceeding 10 min? Cause the 0-conf has the trusted signers, it should be just as good as a confirmed txn and users should be able to trade with the unconfirmed outputs. But then we may end up with a crazy big backlog of unconfirmed outputs. Note that this issue is very very similar to the question of what txn fee the signers use on a btc txn.

3 Likes

yes, it is my question. sorry for my poor english. I think B&C exchange should not let users wait for the confirmations, B&C exchange just make sure the users has enough asset in his deposit address. Actually signers would duty on the detailed transaction.

2 Likes

You see my concern about a big backlog of unconfirmed btc txns though right? Say 2 traders trade back and forth for nbt and btc several times a minute. After 20 minutes, they’ve racked up 20 txns of which only 2 are confirmed on the btc blockchain. We could impose a depth limit, like 6 unconfirmed txns deep, but then a trader might quickly hit that limit and be forced back down to the 1 txn/block limit. A method of combining already signed, unconfirmed txns off-blockchain could speed up the processing of such backlogs.

@Eleven, your question is extremely important and my most concerned issue.

According to B&C whitepaper, we are going to build an ON-CHAIN exchange. But if we impletement the OFF-CHAIN transaction just like “quickwallet”(Eleven’s product), we become a payment system!

On traditional exchange, an active trader may buy/sell 100 times every year, but only several deposite/withdraw to/from the exchange. Typically, customers don’t need to withdraw cryptos from exchange on every transaction, that’s redundant.

I strongly suggest we impletement the off chain transaction feature and give the options to customer to decide when to withdraw money via blockchain. This will bring us tremendous trading capacity, much lower fee and avoid blockchain size bloat.

In this way, B & C = (Crypto Exchange + Payment System)

2 Likes

Signer group A has output x and sends it to signer group B and signer group C has output y which it sends to signer group D. Group A and B share a blockchain, and group C and D share a blockchain. This fully describes a single trade from the perspective of everyone but B&C.

Now, say we have 2 trades that share A and B but not C and D. So one trade takes an output from A to B and another trade takes that output back to A. When B signs the txn for an unconfirmed output that sends x back to A, the network should seek to eliminate both of these txns from the mempool. Unfortunately, that mempool is on a foreign network.

I think the all procedure like this below: 1. our B&C exchange display a exchange website (like any other central exchange) and the end server of B&C exchange will run many clients(like BKC, NU, BTC) . 2 users have their accounts in the website and their accounts have their asset information(like BKC, Nubits,BTC…).
3. A trader sends his order, before the trader can see his order on the website, our server will check the everything we need check, maybe this information is stored in our database or BKC . And if the order matched another order, our server will do it and then tell the trader that his order is filled. Actually the trader does not feel this procedure, because the website only display its order or its order fill.

1 Like

The left I was still considering. I think maybe in user’s account would display unconfirmed asset. :slight_smile:

This is the whole issue. How do we allow trading of unconfirmed assets? Naively, it seems doable because we (and we alone) can trust unconfirmed assets like they were confirmed.

1 Like

Since customers trust our signers, that’s not big problem. The signers say you have 10 BTC then you have 10BTC, simple. If you are not comfortable, withdraw your money at any time as you wish.

In quickwallet, customers need to register with email address, what is B&C’s account? asset address? somthing like Bsdqwuidod237120dceec9023@B&C?

Now that I think about it, we can just stick all the unconfirmed txns in a single block with a huge fee and use CPFP (child pays for parent) if we end up with too big a knot.

I just wanted to link the previous thread where some of this was discussed already, in case not everybody read it yet…

How about signing on top of an unconfirmed output (only where all the unconfirmed were big multisig txns) costs a higher foreign blockchain fee per unconfirmed output? This would kind of force our own personal fee market to develop for each foreign blockchain. Could be very interesting.

In an ideal world I don’t think the money should even need to be transferred before a withdrawal request.

The exchange only has to be able to bookkeep X BTC belongs to trader A, Y BTC belongs to trader B etc. and make sure the orders placed are consistent with these pieces of information. It’s probably not too hard to make sure every client can retrieve and verify this information, on top of usual blockchain indexing.

A large obstacle is that it places a lot of trust on multisig; if the multisig security fails one way or another there will be discrepancies between the book and the keep that will need to be reconciled.

1 Like

http://opentransactions.org/wiki/index.php/Triple-Signed_Receipts

The idea to use balance agreement combined with transaction numbers in order to eliminate the storage (or need) of any account history (so-called destruction of account history) is inspired by Truledger by Bill St Clair. He has mentioned discussions with Patrick Chkeroff of Loom as his muse in this area. The receipt itself becomes the “account”.

Mr. St. Clair describes his protocol in this document: Truledger in Plain English.

And @Eleven has impleted OFF CHAIN instant transaction machanism for quickwallet. Would you explain it?