Jan
Legendary
Offline
Activity: 1043
Merit: 1002
|
|
March 12, 2013, 09:57:41 PM |
|
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
Activity: 1792
Merit: 1008
/dev/null
|
|
March 12, 2013, 10:55:14 PM |
|
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: 1 K1773RbXRZVRQSSXe9N6N2MUFERvrdu6y ANC/XPM A K1773RTmRKtvbKBCrUu95UQg5iegrqyeA NMC: N K1773Rzv8b4ugmCgX789PbjewA9fL9Dy1 LTC: L Ki773RBuPepQH8E6Zb1ponoCvgbU7hHmd EMC: E K1773RxUes1HX1YAGMZ1xVYBBRUCqfDoF BQC: b K1773R1APJz4yTgRkmdKQhjhiMyQpJgfN
|
|
|
grau (OP)
|
|
March 13, 2013, 05:17:31 AM |
|
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)
|
|
March 13, 2013, 05:29:28 AM |
|
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
Activity: 1792
Merit: 1008
/dev/null
|
|
March 13, 2013, 05:46:03 AM |
|
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: 1 K1773RbXRZVRQSSXe9N6N2MUFERvrdu6y ANC/XPM A K1773RTmRKtvbKBCrUu95UQg5iegrqyeA NMC: N K1773Rzv8b4ugmCgX789PbjewA9fL9Dy1 LTC: L Ki773RBuPepQH8E6Zb1ponoCvgbU7hHmd EMC: E K1773RxUes1HX1YAGMZ1xVYBBRUCqfDoF BQC: b K1773R1APJz4yTgRkmdKQhjhiMyQpJgfN
|
|
|
PRab
Member
Offline
Activity: 98
Merit: 10
|
|
March 18, 2013, 05:43:43 PM |
|
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)
|
|
March 18, 2013, 05:58:06 PM |
|
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
Activity: 98
Merit: 10
|
|
March 19, 2013, 03:18:40 AM |
|
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
Activity: 89
Merit: 10
|
|
March 19, 2013, 04:40:30 AM |
|
@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: [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)
|
|
March 19, 2013, 06:38:05 AM Last edit: March 19, 2013, 07:39:08 AM by grau |
|
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
Activity: 51
Merit: 0
|
|
March 19, 2013, 11:01:38 AM |
|
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)
|
|
March 19, 2013, 01:36:26 PM |
|
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.
|
|
|
|
|
grau (OP)
|
|
March 22, 2013, 02:58:40 AM Last edit: March 22, 2013, 03:19:05 AM by grau |
|
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
Activity: 89
Merit: 10
|
|
March 22, 2013, 03:29:26 AM |
|
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)
|
|
March 22, 2013, 07:47:24 AM |
|
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)
|
|
March 26, 2013, 06:21:38 PM |
|
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
Activity: 211
Merit: 100
"Living the Kewl Life"
|
|
March 27, 2013, 03:54:19 AM |
|
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/supernodekeep up the great work (will donate next time a re-up at mt. gox)
|
|
|
|
grau (OP)
|
|
April 06, 2013, 08:01:15 AM |
|
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
Activity: 42
Merit: 11
|
|
April 06, 2013, 08:33:01 PM |
|
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.
|
|
|
|
|