Bitcoin Unlimited v0.12.1bu “Xpedited” -:- Official BU Release

solex

Moderator
Staff member
Aug 22, 2015
1,558
4,693
Announcing BitcoinUnlimited version 0.12.1bu

The second official BU client release spotlights on-chain scaling by building upon Xthin with “Xpedited” which allows any full node owner to participate in a fast block relay sub-network by prior arrangement. This is of particular benefit to miners who require minimum latency in block propagation.

BitcoinUnlimited v0.12.1bu highlights are:

BU v0.12.0 revised with Core v0.12.1 code-base changes plus

Enhancements:

Xpedited block forwarding
  • Peer nodes can be pre-configured for single-hop Xthin block propagation
  • Faster block relay by removing handshake messaging
Xthin priority queue
  • A separate message queue is reserved for Xthin blocks so they can overtake any standard blocks and transactions pending processing by a node
Targeted bloom filters
  • Seeding the bloom filter for Xthin with a small subset of the memory pool where the set is based upon the most probable to-be-mined transactions
Enhanced statistics reporting
  • User settings for detailed node performance, transaction rates, standard / Xthin block processing and transmission information
Connection slot exhaustion mitigation
  • Denial of service protection against network crawlers which open multiple persistent connections
Bitnodes peer seeding
  • Obtain peer addresses from the public Bitnodes API
  • Enable users to specify custom DNS seed hosts
  • Update default DNS seed addresses using data from bitcoinstats.com
Request manager
  • Preference logic to select Xthin and low latency nodes
  • Tracking of all sources of a block/transaction and configurable timeouts result in retries
Miner settings for easy customizing
  • Block version via config param and command line
  • Get/Set coinbase string via config param and command line
Previously disabled in version 0.12.0:
  • Replace-by-Fee [commented out]
  • Alert Key [commented out]
-:- -:- -:-

Acknowledgements with special thanks for coding and testing:


Andrea Suisani
Andrew Stone
Bitcartel
hfinger
Peter Tschipper
pinheadmz

Download location:



Community:


IRC —  https://bitcoinunlimited.slack.com/messages/general
Forum —  https://bitco.in/forum/forums/bitcoin-unlimited.15/
Donations for projects — 36XTMVtgJqqNYymsSvRonpUsbZRGkm1jvX
 
Last edited:

79b79aa8

Well-Known Member
Sep 22, 2015
1,031
3,440
BU team: i will have some freeish time in august and could put it at your disposal. not a working programmer but i can follow. most likely i could help by translating pseudocode or whatever into well-articulated english, ask some questions in the process, and thus contribute to build the documentation. let me know if this (or something else) would be useful. thanks for your work.
 
Last edited:

Peter R

Well-Known Member
Aug 28, 2015
1,398
5,595
@79b79aa8:

Thanks for the interest in helping! I know that Tom Zander wants to see technical documentation for Xthin.

Another useful task might be to write a Medium post explaining @Peter Tschipper's "Xinv" tech (BUIP022), as this will help fight the Maxwellian "Xthin only saves 12% BW [or whatever he was claiming]" FUD. However, to give such a post maximum impact, it would be best to include some real data illustrating the bandwidth savings with Xinv, similar to what we did for Xthin. But I'm not sure how much empirical data we have at this point...

In any case, you should ask @TrevinHofmann for an invitation to our slack channel.
 

Peter Tschipper

Active Member
Jan 8, 2016
254
357
BU team: i will have some freeish time in august and could put it at your disposal. not a working programmer but i can follow. most likely i could help by translating pseudocode or whatever into well-articulated english, ask some questions in the process, and thus contribute to build the documentation. let me know if this (or something else) would be useful. thanks for your work.
@79b79aa8 We do need some more doc...one relatively quick and easy thing to get the ball rolling would be an install guide...similar to what Classic has but you could also add some of the tricky issues like install on Ubuntu, @sickpig might have some insight there. Do you have access to our slack channels? that's where we hang out mostly.
 

pekatete

Active Member
Jun 1, 2016
123
368
London, England
icreateofx.com
I have been running this release on two VPS instances and, on both, it keeps conking out after a couple of days.

1. The bitcoind process is still running and verified by doing a ps-ax
2. I can not start another instance, I get the error: - Error: Cannot obtain a lock on data directory /root/.bitcoin. Bitcoin is probably already running.
3. Querying bitcoin-cli with any argument yields: error: couldn't parse reply from server

With the previous release, I was running the same VPS for months without touching a thing. Has anyone else been afflicted by this?
 

Peter Tschipper

Active Member
Jan 8, 2016
254
357
what OS version are you running one and could you post the last few lines in your log...
also, what's the state of your cpu...is the bitcoind process still running high cpu but hung or is it not doing anything?
 

sickpig

Active Member
Aug 28, 2015
926
2,541
@pekatete

thanks for the feedback.

on the console from which you are executing bitcoind just fire this command before:

Code:
ulimit -c unlimited
if executions is successful you won't see any outputs on the terminal.

just to be sure run this command

Code:
ulimit -a  | grep core
the output should be something like this.
Code:
core file size          (blocks, -c) unlimited
then start bitcoind and the next time it will get stuck execute this command from the console

Code:
kill -11 `pidof bitcoind`
this command should in theory stop the daemon and produce a core file stored in the path from which you have executed in the first place.

Once you have locate the file (it could be quite big) we need to extract a back trace from that.

Code:
sudo apt-get install gdb
gdb -se "/path/to/bitcoind" -ex "bt full" -ex "thread apply all bt" --batch -c /path/to/core > /tmp/backtrace.txt
then share with us the backtrace.txt file


addendum: just to be sure what's the output of this command?

Code:
grep "Bitcoin version" .bitcoin/debug.log | tail -n 1
 
Last edited:
  • Like
Reactions: freetrader

pekatete

Active Member
Jun 1, 2016
123
368
London, England
icreateofx.com
@Peter Tschipper - OS is Ubuntu Linux. When I ran the pa -ax command, the process was listed as:
PID | TTY | STAT | TIME | COMMAND
1912 | ? | SLl | 351:52 | bitcoind -conf=/etc/bitcoin.conf

Not sure what logs you want to look at ...

@sickpig - I had already killed and restarted the bitcoind process, however, I have run the first three commands listed (hopefully that will yield the core dump too). I'll provide the file as soon as it does its thing.
 
  • Like
Reactions: freetrader

Peter Tschipper

Active Member
Jan 8, 2016
254
357
just that last 20 or so lines of the debug.log, should be in the main bitcoin folder where the bitcoin.conf file is located.

and of course the core dump backtrace if you can get it...thanks.
 
  • Like
Reactions: freetrader

sickpig

Active Member
Aug 28, 2015
926
2,541
@pekatete

the log file @Peter Tschipper is referring to is debug.log and should be located in bitcoin datadir (default /home/<username>/.bitcoin/).

besides the last 20 lines of debug.log, please post also the output of the last command I've described in my previous post.

The next it will get stuck pefore issuing the "kill -11" execute this command

Code:
sudo strace -p `pidof bitcoind` 2> /tmp/strace.txt
just let the command run for 20 sec and hit Ctrl-C to stop it.

Then share with us the /tmp/strace.txt file
 
  • Like
Reactions: freetrader

pekatete

Active Member
Jun 1, 2016
123
368
London, England
icreateofx.com
Sorry, I truncate the debug.log file every so often so that it does not get too big as I harvest data from it ....

EDIT:
When either VPS fails again, I'll provide the last few lines in debug.log
With regard to the core dump, I ran the first 3 commands successfully, would you like me to proceed to the end now or should I wait till it fails again? PS. Like I mentioned, I had already killed and restarted the process when you gave the instructions.
 
  • Like
Reactions: freetrader

Peter Tschipper

Active Member
Jan 8, 2016
254
357
just let it run ...thanks...when it crashes do the things @sickpig decribed above. Both before you kill the bitcoind and after...one is to create the strace.txt (done before you issue the kill ) and the other the core dump with the backtrace after the kill. Let us know if you need any help when it happens again...thanks for reporting this!
 
  • Like
Reactions: freetrader

pekatete

Active Member
Jun 1, 2016
123
368
London, England
icreateofx.com
@Peter Tschipper - I am not surprised there was another one on Ubuntu. I've had it crash on two separate instances .....

I initially updated just one of my VPS's as I'd had issues with a self compiled Xpedited blocks branch previously (did not report that one as code was still in development). But these crashes happened with the supplied compiled binaries of the 0.12.1 release.

When the first one happened, I thought it was related to some scripts I was running / writing at around that time on the VPS, but I've not touched the one that crashed today since updating it that's why I posted here just in case it'd been reported before.

PS. From the observation, I think (on my VPS's) it takes around 2 days or so. We'll see if/when either crashes again and get the logs. In the meantime, thanks for attending to it.
 
  • Like
Reactions: freetrader

pekatete

Active Member
Jun 1, 2016
123
368
London, England
icreateofx.com
@Peter Tschipper @sickpig - we have action! Nearly on queue, the first VPS to fail has failed again .... I'll run the commands above and update in a moment (may be distracted as timing coincides with football replay on telly .... bear with me)


EDIT: Not much to the strace.txt file, but there might be something I've missed (or do I need to run it longer?).
[doublepost=1470606011,1470605347][/doublepost]@sickpig - I have run the kill -11 `pidof bitcoind` command but can not find the core dump (neither in / nor .bitcoin directories!). Anywhere obscure I should be looking?
[doublepost=1470606622][/doublepost]PS. Since I ran the kill command, I can not re-run the strace command as bitcoin has been killed. Also the debug.log was truncated just before the fail, so no data there either (I removed this on the last VPS that failed, so if that fails again I should have more data to share).
 

Peter Tschipper

Active Member
Jan 8, 2016
254
357
what was in the debug log? the last lines...also, can you make this setting in the bitcoin.conf and restart

debug=

just leave it = blank, that will give us all the debug info next time, if there is anything to be seen

thanks.
 

pekatete

Active Member
Jun 1, 2016
123
368
London, England
icreateofx.com
There was nothing at all in the log, the script that I had running on it truncates the log file to 0 every 5 minutes. But the next VPS is dues to throw in the towel (if my estimates are right!), but the end of day tomorrow (and the truncating script is not working on that, though it's only running with debug=thin).

Was that strace file any good with detail? Looked like I needed to run it for longer ..... also, any idea where the core dump could have been saved?
 

Peter Tschipper

Active Member
Jan 8, 2016
254
357
@pekatete sickpig says the core file should be in the place you executed bitcoind or in /var/crash
[doublepost=1470608547][/doublepost]futex(0x7fadfa297a54, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 2625769, {1470605404, 783646547}, ffffffff) = -1 ETIMEDOUT (Connection timed out)

looks to me there is something that is possibly deadlocked.