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

When a trade occurs, two native blockchain transfers will always occur. Take the example of a BTC/USNBT trade. For an order on the BTC/USNBT pair to be valid by protocol, it must originate from an account that has a BTC deposit address and an NBT deposit address associated with it. The proceeds of a trade remain on exchange in a signer controlled multisig address that is eligible for another trade after the configurable number of required confirmations exist. The proceeds of the trade are processed exactly like a deposit.

2 Likes

If the trade order is always not fulfilled, the BTCs are still multisig held in signers, we can configure how long time to give back BTC to trade order originator. Is it right?

Then can we configure number of required confirmation to 1000 confirmations, this will delay the deposite to customers. i.e Signers still hold the BTC after a trade occurs.

My ASRock Beebox arrived and I started configuring and testing it.
One hint for those who want to follow this path: in difference to the specifications, Ubuntu 14.04.3 LTS doesnā€™t run on it.
Installation was fine, but I ran into trouble booting it, which I couldnā€™t solve. Alas, Iā€™m no sysadminā€¦
I equipped it with 16 GB RAM (just in case I might need it; 8 GB should be totally sufficient), a small SSD for the operating system and a 500 GB HDD for the blockchain appdata files.

Hereā€™s some output from it running daemons for processing BKC, BKS, BTC, LTC, NBT, NSR, PPC

<top>
top - 08:40:21 up  1:41,  1 user,  load average: 0.35, 0.44, 0.73
Tasks:   5 total,   0 running,   5 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  1.8 sy,  3.7 ni, 94.0 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem:  16098776 total,  6037796 used, 10060980 free,   127320 buffers
KiB Swap:        0 total,        0 used,        0 free.  3731056 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 2742 user      20   0 1272788 577820  47096 S  10.3  3.6   7:22.39 bcexchanged
 2745 user      20   0 1751556 443896  38480 S   3.7  2.8   7:11.58 bitcoind
 2764 user      20   0 2238616 418456  30340 S   1.3  2.6  11:14.72 nud
 2771 user      20   0  852504 152620  47832 S   1.3  0.9   1:10.09 peerunityd
 2760 user      20   0 1371780 408888 112704 S   0.7  2.5   0:55.90 litecoind
</top>
<daemons>
bcexchanged getinfo | grep version
    "version" : "v4.0.1-beta",
    "protocolversion" : "2.0",
    "walletversion" : 1,
bitcoin-cli getinfo | grep version
  "version": 120000,
  "protocolversion": 70012,
  "walletversion": 60000,
litecoin-cli getinfo | grep version
    "version" : 100400,
    "protocolversion" : 70003,
    "walletversion" : 60000,
nud getinfo | grep version
    "version" : "v2.1.1-RC1-beta",
    "protocolversion" : 2000000,
    "walletversion" : 1,
peerunityd getinfo | grep version
    "version" : "v0.2.0",
    "protocolversion" : 60006,
    "walletversion" : 60000,
</daemons>
<cpuinfo>
cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 76
model name      : Intel(R) Celeron(R) CPU  N3150  @ 1.60GHz
stepping        : 3
microcode       : 0x34c
cpu MHz         : 2165.474
cache size      : 1024 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bugs            :
bogomips        : 3199.92
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 76
model name      : Intel(R) Celeron(R) CPU  N3150  @ 1.60GHz
stepping        : 3
microcode       : 0x34c
cpu MHz         : 538.065
cache size      : 1024 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 4
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bugs            :
bogomips        : 3199.92
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : GenuineIntel
cpu family      : 6
model           : 76
model name      : Intel(R) Celeron(R) CPU  N3150  @ 1.60GHz
stepping        : 3
microcode       : 0x34c
cpu MHz         : 537.805
cache size      : 1024 KB
physical id     : 0
siblings        : 4
core id         : 2
cpu cores       : 4
apicid          : 4
initial apicid  : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bugs            :
bogomips        : 3199.92
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 76
model name      : Intel(R) Celeron(R) CPU  N3150  @ 1.60GHz
stepping        : 3
microcode       : 0x34c
cpu MHz         : 760.112
cache size      : 1024 KB
physical id     : 0
siblings        : 4
core id         : 3
cpu cores       : 4
apicid          : 6
initial apicid  : 6
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
bugs            :
bogomips        : 3199.92
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

</cpuinfo>
<openssl speed>
OpenSSL 1.0.2d 9 Jul 2015
built on: reproducible build, date unspecified
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)
compiler: cc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md2                  0.00         0.00         0.00         0.00         0.00
mdc2                 0.00         0.00         0.00         0.00         0.00
md4              30874.55k    96455.81k   238143.57k   376982.87k   456422.74k
md5              21850.36k    69179.67k   170851.75k   268739.58k   323799.72k
hmac(md5)        20203.08k    64765.99k   163406.51k   263462.91k   322800.30k
sha1             23597.31k    65787.88k   140077.57k   195022.34k   219829.59k
rmd160           16504.53k    40561.11k    76020.99k    97589.94k   106255.70k
rc4             137162.86k   233299.29k   291951.02k   313582.25k   320492.89k
des cbc          32183.90k    34414.06k    35138.56k    35319.47k    35343.02k
des ede3         12884.37k    13318.98k    13415.00k    13445.46k    13469.43k
idea cbc             0.00         0.00         0.00         0.00         0.00
seed cbc         40441.59k    43816.06k    44673.37k    44860.42k    44968.62k
rc2 cbc          22819.91k    24181.23k    24527.53k    24603.99k    24616.96k
rc5-32/12 cbc        0.00         0.00         0.00         0.00         0.00
blowfish cbc     59774.85k    67966.14k    70255.27k    70889.47k    71136.60k
cast cbc         55593.77k    62434.62k    65003.09k    65610.41k    65803.61k
aes-128 cbc      33490.70k    37427.31k    38959.18k   102791.85k   104622.76k
aes-192 cbc      28638.42k    31331.46k    32363.78k    86855.34k    88268.80k
aes-256 cbc      24600.37k    26834.88k    27752.11k    75196.76k    76128.26k
camellia-128 cbc    34325.21k    60886.24k    75174.01k    80054.88k    81179.99k
camellia-192 cbc    30249.55k    48666.71k    57977.60k    60938.58k    62116.73k
camellia-256 cbc    30316.05k    48988.02k    57824.77k    61067.95k    61967.02k
sha256           19580.59k    43797.38k    75966.98k    93543.77k   100433.92k
sha512           12346.91k    49256.51k    74737.32k   104489.64k   118084.95k
whirlpool        11353.48k    24669.06k    41644.63k    50266.45k    53600.26k
aes-128 ige      34216.57k    36811.88k    37471.57k    37741.08k    37724.16k
aes-192 ige      29053.92k    30848.70k    31359.66k    31515.99k    31536.47k
aes-256 ige      25130.95k    26457.58k    26944.34k    27139.42k    27118.25k
ghash           235084.51k   462642.28k   630902.10k   697310.44k   717630.12k
                  sign    verify    sign/s verify/s
rsa  512 bits 0.000221s 0.000016s   4531.5  62479.4
rsa 1024 bits 0.000753s 0.000047s   1327.9  21118.2
rsa 2048 bits 0.005593s 0.000163s    178.8   6121.1
rsa 4096 bits 0.040648s 0.000616s     24.6   1622.3
                  sign    verify    sign/s verify/s
dsa  512 bits 0.000194s 0.000202s   5155.0   4938.3
dsa 1024 bits 0.000505s 0.000588s   1978.7   1701.9
dsa 2048 bits 0.001691s 0.002067s    591.4    483.8
                              sign    verify    sign/s verify/s
 160 bit ecdsa (secp160r1)   0.0002s   0.0007s   4841.9   1369.7
 192 bit ecdsa (nistp192)   0.0002s   0.0009s   4170.8   1087.5
 224 bit ecdsa (nistp224)   0.0003s   0.0007s   3054.2   1366.3
 256 bit ecdsa (nistp256)   0.0002s   0.0005s   5146.7   2162.4
 384 bit ecdsa (nistp384)   0.0008s   0.0034s   1195.6    294.9
 521 bit ecdsa (nistp521)   0.0019s   0.0033s    529.2    303.5
 163 bit ecdsa (nistk163)   0.0005s   0.0015s   1994.6    655.6
 233 bit ecdsa (nistk233)   0.0010s   0.0020s    989.2    509.2
 283 bit ecdsa (nistk283)   0.0016s   0.0037s    631.3    270.7
 409 bit ecdsa (nistk409)   0.0037s   0.0063s    271.8    158.4
 571 bit ecdsa (nistk571)   0.0081s   0.0145s    122.8     68.9
 163 bit ecdsa (nistb163)   0.0005s   0.0016s   1989.5    627.5
 233 bit ecdsa (nistb233)   0.0010s   0.0020s    998.6    489.9
 283 bit ecdsa (nistb283)   0.0016s   0.0039s    633.4    254.8
 409 bit ecdsa (nistb409)   0.0037s   0.0068s    270.4    147.6
 571 bit ecdsa (nistb571)   0.0081s   0.0157s    123.0     63.8
                              op      op/s
 160 bit ecdh (secp160r1)   0.0006s   1646.7
 192 bit ecdh (nistp192)   0.0007s   1358.6
 224 bit ecdh (nistp224)   0.0005s   1891.1
 256 bit ecdh (nistp256)   0.0003s   3038.1
 384 bit ecdh (nistp384)   0.0028s    355.6
 521 bit ecdh (nistp521)   0.0024s    415.7
 163 bit ecdh (nistk163)   0.0007s   1357.8
 233 bit ecdh (nistk233)   0.0009s   1061.4
 283 bit ecdh (nistk283)   0.0018s    556.5
 409 bit ecdh (nistk409)   0.0031s    324.6
 571 bit ecdh (nistk571)   0.0070s    143.2
 163 bit ecdh (nistb163)   0.0008s   1297.8
 233 bit ecdh (nistb233)   0.0010s   1021.9
 283 bit ecdh (nistb283)   0.0019s    522.1
 409 bit ecdh (nistb409)   0.0033s    303.4
 571 bit ecdh (nistb571)   0.0076s    130.9
</openssl speed>

If you want to have additional information, please ask.
So far Iā€™m confident that this Beebox has sufficient power to host a lot of blockchains for the signing, although the N3150 is at the very low end of x86 computing power.
Gladly not much computing is necessary for that.

Itā€™s a quite cheap device, running below 10 Watts at average, requiring only a dirt-cheap UPS.
Regarding purchase costs - the numbers are just ballpark figures and depend on where you buy:
Beebox $150 (barebone incl. power supply)
RAM $70 (careful - not all modules work; follow the ASRock specification)
SSD $40
HDD $40

For $300 you get a device, which is not significantly more expensive than running each blockchain on a dedicated RaspberryPi or equivalent plus maintenance is much easier. The benefit of an army of RaPis would be an improved resiliency against hardware defects - with one spare RaPi you could replace any failed RaPi (if you have an image of the SD card this could be done quite fast - but how to create an image without downtime? :wink: ).

I will try KVM next to split the blockchains into separate VMs.
My ultimate goal is to have a second Beebox and run the VMs as high availability cluster.
With a UPS and a redundant internet access, this should do as reliable signing environment.
The second Beebox has to wait until I know the requirements for becoming a signer.
If I canā€™t provide enough collateral this Beebox will make an excellent media centre (remote contol included in the Beebox package :wink: )
Iā€™ll keep you updated.

3 Likes

The Beebox seems like a very nice device ā€“

1 Like

The Beebox is indeed a nice piece of hardware.
The N3150 version (which I have) has active cooling, but the fan is very silent. The N3000 Beebox is passively cooled and should do as well (is 10 to 15 bucks cheaper than the N3150 and has only 2 cores).
What I especially liked is the support for up to 16 GB RAM (2 SO-DIMM slots), the support for 1.35 V and 1.5 V RAM modules and having a SATA and a mSATA connector.

  1. You can never have too much RAM.
  2. With support for 1.5 V modules you can operate it with old modules as well as new ones and donā€™t have to care.
  3. Using a small mSATA SDD for the operating system and a SATA (2.5") HDD for the data is a split I like.

I have no use for the 3 display connectors - which are nice if you intend to make an office computer out of it.

If you like to play with that type of gadgets, you will love the Beebox!

Very much look forward to how it will go on your side with the beebox

Yah, I wish I had more time.
Thereā€™s so much to do and to test.
E.g. encryption for the drive with the blockchain application folders should be no big deal with dm-crypt/cryptsetup, because that little Intel CPU has not much computing power, but support for AES-NI, which should result in sufficient I/O speed without much CPU load.
Of course that needs to be tested.
Even thinking of making the Beebox a host for VMs via KVM and using disk encryption might seem strange.
But the combination of hardware features (VT-x, AES-NI, up to 16 GB RAM) call for testing this!