Bitcoin Forum
November 07, 2024, 01:07:53 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 »  All
  Print  
Author Topic: ANN: Announcing code availability of the bitsofproof supernode  (Read 35154 times)
Jan
Legendary
*
Offline Offline

Activity: 1043
Merit: 1002



View Profile
March 12, 2013, 09:57:41 PM
 #161

The bitsofproof node sailed through the recent chain turbulences.

It was accepting the forking block in sync with 0.8 and was also able to re-org the 25 blocks as the other branch became longer.

Kudos to you. Are you happening to attend the San Jose conference?

Mycelium let's you hold your private keys private.
K1773R
Legendary
*
Offline Offline

Activity: 1792
Merit: 1008


/dev/null


View Profile
March 12, 2013, 10:55:14 PM
 #162

It is a modern full validation implementation that loads the chain from scratch in about 8 hours if using the leveldb option.
8 hours is a long time, are the bottlenecks known (ie. tested and made publicly)?
I'd say bootstrap duration is on par with the reference client.
You would use this implementation to create functionality not offered by the reference implementation, not to compete with that within its abilities.
ok then il have to rephrase, 8 hours on which HD/CPU/System?
have you tested it with tmpfs? (its not about to pick a software which syncs the fastest, thats stupid. just wanna know where the known bottlenecks are in generell).

[GPG Public Key]
BTC/DVC/TRC/FRC: 1K1773RbXRZVRQSSXe9N6N2MUFERvrdu6y ANC/XPM AK1773RTmRKtvbKBCrUu95UQg5iegrqyeA NMC: NK1773Rzv8b4ugmCgX789PbjewA9fL9Dy1 LTC: LKi773RBuPepQH8E6Zb1ponoCvgbU7hHmd EMC: EK1773RxUes1HX1YAGMZ1xVYBBRUCqfDoF BQC: bK1773R1APJz4yTgRkmdKQhjhiMyQpJgfN
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
March 13, 2013, 05:17:31 AM
 #163

The bitsofproof node sailed through the recent chain turbulences.

It was accepting the forking block in sync with 0.8 and was also able to re-org the 25 blocks as the other branch became longer.

Kudos to you. Are you happening to attend the San Jose conference?
Thanks Jan. Yes I will be there. Will hold a lightning session speech on bitsofproof.
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
March 13, 2013, 05:29:28 AM
 #164

It is a modern full validation implementation that loads the chain from scratch in about 8 hours if using the leveldb option.
8 hours is a long time, are the bottlenecks known (ie. tested and made publicly)?
I'd say bootstrap duration is on par with the reference client.
You would use this implementation to create functionality not offered by the reference implementation, not to compete with that within its abilities.
ok then il have to rephrase, 8 hours on which HD/CPU/System?
have you tested it with tmpfs? (its not about to pick a software which syncs the fastest, thats stupid. just wanna know where the known bottlenecks are in generell).
I use a 4 dedicated vCPU server with 2GHz each, 16GB RAM and an encrypted virtual file system. Bootstrap time is about 8 hours if using leveled option. Bottleneck in bootstrap before the checkpoint (hard coded chain hash for height 222222 at the moment) is disk I/O thereafter as it does full script validation, bottleneck becomes CPU. Script validation is fully multithreaded all processors are on 98+% during that time.

Once synced this server is able to cope with current transaction traffic using single digit CPU percentage use. There are very short spikes to 100% as it validates new block coming in. Disk I/O is the limit for serving getdata requests and queries during normal use.

The current disk footprint is 12GB for the chain. Beware that this stores several indices do speed up queries by address to tx and blocks.
K1773R
Legendary
*
Offline Offline

Activity: 1792
Merit: 1008


/dev/null


View Profile
March 13, 2013, 05:46:03 AM
 #165

It is a modern full validation implementation that loads the chain from scratch in about 8 hours if using the leveldb option.
8 hours is a long time, are the bottlenecks known (ie. tested and made publicly)?
I'd say bootstrap duration is on par with the reference client.
You would use this implementation to create functionality not offered by the reference implementation, not to compete with that within its abilities.
ok then il have to rephrase, 8 hours on which HD/CPU/System?
have you tested it with tmpfs? (its not about to pick a software which syncs the fastest, thats stupid. just wanna know where the known bottlenecks are in generell).
I use a 4 dedicated vCPU server with 2GHz each, 16GB RAM and an encrypted virtual file system. Bootstrap time is about 8 hours if using leveled option. Bottleneck in bootstrap before the checkpoint (hard coded chain hash for height 222222 at the moment) is disk I/O thereafter as it does full script validation, bottleneck becomes CPU. Script validation is fully multithreaded all processors are on 98+% during that time.

Once synced this server is able to cope with current transaction traffic using single digit CPU percentage use. There are very short spikes to 100% as it validates new block coming in. Disk I/O is the limit for serving getdata requests and queries during normal use.

The current disk footprint is 12GB for the chain. Beware that this stores several indices do speed up queries by address to tx and blocks.
thats exactly what i wanted, ty!

[GPG Public Key]
BTC/DVC/TRC/FRC: 1K1773RbXRZVRQSSXe9N6N2MUFERvrdu6y ANC/XPM AK1773RTmRKtvbKBCrUu95UQg5iegrqyeA NMC: NK1773Rzv8b4ugmCgX789PbjewA9fL9Dy1 LTC: LKi773RBuPepQH8E6Zb1ponoCvgbU7hHmd EMC: EK1773RxUes1HX1YAGMZ1xVYBBRUCqfDoF BQC: bK1773R1APJz4yTgRkmdKQhjhiMyQpJgfN
PRab
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
March 18, 2013, 05:43:43 PM
 #166

Is there a more recent snapshot than the one at http://ftp://bitsofproof.com/supernode.zip? It looks like that was last updated about 3 months ago.

Is there a way to configure where it puts the data file for LevelDB? Right now they appear to go to C:\Users\%UserName%\data (Windows 7). It would feel more standard for them go to C:\Users\%UserName%\AppData\Roaming\BitsOfProof or somewhere inside the folder that contains the exe.
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
March 18, 2013, 05:58:06 PM
 #167

Is there a more recent snapshot than the one at http://ftp://bitsofproof.com/supernode.zip? It looks like that was last updated about 3 months ago.

Is there a way to configure where it puts the data file for LevelDB? Right now they appear to go to C:\Users\%UserName%\data (Windows 7). It would feel more standard for them go to C:\Users\%UserName%\AppData\Roaming\BitsOfProof or somewhere inside the folder that contains the exe.
No, that build was a demo, long outdated and not supported. I do not currently plan to release a windows executable build.
PRab
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
March 19, 2013, 03:18:40 AM
 #168

What versions of Java, Maven, and protoc are required?

I just tried building ("mvn package" - Windows 7 64bit) from git and it failed. I can't see the exact message because the mvn window closes automatically. It appears to make the \api\target directory, but there are just a couple of subdirectories (no actual files). In addition, it modifies \api\src\main\java\com\bitsofproof\supernode\api\BCSAPIMessage.java by quite a bit.

Any suggestions?
Rogue Star
Member
**
Offline Offline

Activity: 89
Merit: 10


View Profile
March 19, 2013, 04:40:30 AM
 #169

@PRab If you just want more scroll back you have a few options:
-change the command prompt properties in the title bar and increase the "screen buffer height"
-pipe it out to a file, i don't know what mvn goals you are using so these are just examples "mvn clean package -l mvn.log" or "mvn clean package > mvn.log", unfortunately you can only redirect output and won't see the output in the CLI
-use a proper IDE like Eclipse or IntelliJ CE which should give you as much scroll back as you need and code URLs

I haven't tried figuring out what version of protoc he's using either, which is where I'll have to turn my attention to grau

@grau I have some experience as a build manager and going to say "bad grau, bad", repeat after me "i must not include implicit external dependencies in maven builds". In maven you must be explicit in your pom files in such situations. That is the price you pay when including such dependencies, whether you use maven or something else.

If you can't include it due to licensing or any other reason, use a stub pom that declares what version you are using and a link to any licensing terms and/or where to get it. It's painful, but less painful than another developer trying to read your mind.

Here's the default log level error I get:
Code:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.3:run (compile-protoc) on project bitsofproof-server-api: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "protoc": CreateProcess error=2, The system cannot find the file specified -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Also, seeing an ant-run makes me a sad panda, but it's adequate if it's not causing an build problems.

you can donate to me for whatever reason at: 18xbnjDDXxgcvRzv5k2vmrKQHWDjYsBDCf
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
March 19, 2013, 06:38:05 AM
Last edit: March 19, 2013, 07:39:08 AM by grau
 #170

What versions of Java, Maven, and protoc are required?

I just tried building ("mvn package" - Windows 7 64bit) from git and it failed. I can't see the exact message because the mvn window closes automatically. It appears to make the \api\target directory, but there are just a couple of subdirectories (no actual files). In addition, it modifies \api\src\main\java\com\bitsofproof\supernode\api\BCSAPIMessage.java by quite a bit.

Any suggestions?

Recent versions of java and protobuf, that is Java 6 or 7, protobuf 2.x are needed.
The protobuf compiler generates BCSAPIMessage.java.

I am sure you find better sources with google on how to install java, protobuf or use maven on windows than my answers, since I avoid using windows whenever I can.

@grau I have some experience as a build manager and going to say "bad grau, bad", repeat after me "i must not include implicit external dependencies in maven builds". In maven you must be explicit in your pom files in such situations. That is the price you pay when including such dependencies, whether you use maven or something else.

You see the errors because the protobuf compiler is not installed or not in path.
Let me know if protobuf compiler dependency and execution can be formulated more elegantly and I will amend.

The build works as documented on https://github.com/bitsofproof/supernode/wiki/Build. Basically a one liner.

I am confident that this is the case, since the build is executed on a fresh git clone with every commit using random machines supported by the travis-ci project. Also all unit test are running through there. See recent (and historic) build and test outputs here: https://travis-ci.org/bitsofproof/supernode. The travis configuration is also trivial, just asking for default protobuf installation, see here: https://github.com/bitsofproof/supernode/blob/master/.travis.yml
shamaniotastook
Newbie
*
Offline Offline

Activity: 51
Merit: 0



View Profile
March 19, 2013, 11:01:38 AM
 #171

i'm interested in implementing this on aws and building a pristine community image and good documentation or even automated security automation on setup, and also getting running in a worker role on azure...anyone interested in collaboration?
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
March 19, 2013, 01:36:26 PM
 #172

i'm interested in implementing this on aws and building a pristine community image and good documentation or even automated security automation on setup, and also getting running in a worker role on azure...anyone interested in collaboration?
I thought this server will be basis for unique implementations, not a commodity client for end user. Tell me a bit more about the use case you address please.
PRab
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
March 22, 2013, 02:41:26 AM
 #173

Ok, I think I a pretty close to having it. I swapped out protoc to version 2.4.1 (was at 2.5.0). Looks like it compiles but then fails while running a self test.

http://pastebin.aquilenet.fr/?7810ca4c946a733a#cvCNsQFIP0bzRKaEzQIIqB6DiEbmiK4zeqmgen61Bf8=

Any suggestions?
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
March 22, 2013, 02:58:40 AM
Last edit: March 22, 2013, 03:19:05 AM by grau
 #174

Looks like maven would not build the right path for tests, since it can not load the log config. This could be also the explanation for not picking up the right security provider (bouncy castle). You likely have some unique environment or build of maven. Local hosted repositories or patched?

The:
[debug] execute contextualize

lines in your maven output suggests this is some patched maven.
Rogue Star
Member
**
Offline Offline

Activity: 89
Merit: 10


View Profile
March 22, 2013, 03:29:26 AM
 #175

Looks like maven would not build the right path for tests, since it can not load the log config. This could be also the explanation for not picking up the right security provider (bouncy castle). You likely have some unique environment or build of maven. Local hosted repositories or patched?

Or you are running into Windows unable to deal with paths longer than X byte or paths with space in it or similar.

General suggestion:
Install some unix based operating system before trying to build software.
i find your suggestions a bit dissatisfying from a build perspective. You are using platform independent language and a platform independent build stack and yet you are suggesting your actual build may in fact be platform dependent. I understand you have other priorities bringing up the code to a high level of quality, but you should be in the frame of mind where your code and build will be platform independent at some point. PRab swapping out versions of protoc is a perfect example of something Maven is supposed to unequivocally disambiguate. At a casual glance, everything else in the build is looks good, which is why build issue a bit confusing.

I did do some research the other day, and I can see you are including protoc in your build as it has been recommended in various forums. My main issue is that the recommendation is incomplete (some posts even acknowledge this), which is why PRab and I are unable to reproduce your build without a non-trivial amount of effort.

I feel I can contribute to helping you create a platform independent build or at least a clearer build path, so I will try to help you to that end. I'll need to find some more time to look into this and will contact you if I find I need any more information.

you can donate to me for whatever reason at: 18xbnjDDXxgcvRzv5k2vmrKQHWDjYsBDCf
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
March 22, 2013, 07:47:24 AM
 #176

Looks like maven would not build the right path for tests, since it can not load the log config. This could be also the explanation for not picking up the right security provider (bouncy castle). You likely have some unique environment or build of maven. Local hosted repositories or patched?

Or you are running into Windows unable to deal with paths longer than X byte or paths with space in it or similar.

General suggestion:
Install some unix based operating system before trying to build software.
i find your suggestions a bit dissatisfying from a build perspective. You are using platform independent language and a platform independent build stack and yet you are suggesting your actual build may in fact be platform dependent. I understand you have other priorities bringing up the code to a high level of quality, but you should be in the frame of mind where your code and build will be platform independent at some point. PRab swapping out versions of protoc is a perfect example of something Maven is supposed to unequivocally disambiguate. At a casual glance, everything else in the build is looks good, which is why build issue a bit confusing.

I did do some research the other day, and I can see you are including protoc in your build as it has been recommended in various forums. My main issue is that the recommendation is incomplete (some posts even acknowledge this), which is why PRab and I are unable to reproduce your build without a non-trivial amount of effort.

I feel I can contribute to helping you create a platform independent build or at least a clearer build path, so I will try to help you to that end. I'll need to find some more time to look into this and will contact you if I find I need any more information.

You are right, ideally I would care about build process on platforms other than Linux and OS X.
I do not have bandwidth.

I deleted my rant above, but you managed to quote it before I recognized that it was a non-productive outbreak of my long standing hate relationship with Windows. That system did cause frustration to me every time I had to face it.

Your help is appreciated. I understand your frustration (sounds familiar), but I did everything to make the build a no-brainer on any unix system. If you were figuring out build instructions for windows, that would be great to avoid similar frustration.

I believe that this system will be deployed in unix like environments in virtually all cases of production. Even if production environment would be windows it could use the built artifacts without recompiling them, so the issue is really limited to developer who have to use windows for some reason.




grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
March 26, 2013, 06:21:38 PM
 #177

Note that I incorporated bits of proof zrt. and transferred the copyright on the bits of proof implementation of the Bitcoin protocol to it.

The license terms remain the same, that is Apache License, Version 2.0.

bits of proof zrt. offers custom extensions and commercial support for this implementation of Bitcoin.
The implementation is at beta stage, features will be further extended.

See further info at: https://github.com/bitsofproof/supernode
nyusternie
Full Member
***
Offline Offline

Activity: 211
Merit: 100


"Living the Kewl Life"


View Profile
March 27, 2013, 03:54:19 AM
 #178

Note that I incorporated bits of proof zrt. and transferred the copyright on the bits of proof implementation of the Bitcoin protocol to it.

The license terms remain the same, that is Apache License, Version 2.0.

bits of proof zrt. offers custom extensions and commercial support for this implementation of Bitcoin.
The implementation is at beta stage, features will be further extended.

See further info at: https://github.com/bitsofproof/supernode

keep up the great work Cheesy
(will donate next time a re-up at mt. gox)

1SDoTrAWQnbJ2ZHvLs3a2XxazqNSishn1
GPG A1638B57 | OTC nyusternie
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
April 06, 2013, 08:01:15 AM
 #179

Bits of proof website launched http://bitsofproof.com background info, presentations and documentation coming soon.

You might be interested to check the Jobs section.
r.willis
Jr. Member
*
Offline Offline

Activity: 42
Merit: 11


View Profile
April 06, 2013, 08:33:01 PM
 #180

Do you have host running bitsofproof 24/7?
What are you using for ECDSA? How many sigchecks/sec does it perform?
What's maximum number of peers you tested it with?
What anti-DoS rules do you have?
Thanks.
Pages: « 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!