Bitcoin full node and query server

December 2020

Archive of the libbitcoin Slack #general channel.

Tuesday, December 1, 2020

N
narodnik23:20
Damn he never transferred the domain over?
That sucks. We aren't on speaking terms no longer.
evoskuil23:23
No, I tried several times.

Thursday, December 3, 2020

L
@pmienk @evoskuil I like consistency :P. As far as I see, gsl scripts stick to the principle "Maximum of 80 characters per line". What to do in this case? https://github.com/libbitcoin/libbitcoin-build/blob/master/templates/gsl.version.hpp#L44 Possible solutions: 1. leave it as it is and break the rule. 2. additional variable and break the string interpolation https://pastebin.com/94JMsXr1 3. additional variable and leave the string in one line https://pastebin.com/QNDVWyvx 4. continue by 1 indent https://pastebin.com/95WgL3se The last case (4) is something like a "fake" because there is no indent but the indent a part of the template output. Case 1 breaks the rule. Case 2 and 3 looks good for me.
Pastebin
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Pastebin
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Pastebin
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.

Thursday, December 10, 2020

Joel Klabo00:20
Hey all, I have a noob question here and I haven't been able to get help from googling etc. I have installed libbitcoin from homebrew and I am able to successfully run bx, I am trying to code some of the examples from mastering bitcoin and I'm unable to get anything to compile referencing libbitcoin there. I also installed libbitcoin from source and it fails on installing boost. I went through trying to install boost, multiple versions but I continue to get errors when trying to compile a file where I include <bitcoin/bitcoin.hpp> Some errors for example: undeclared identifier '_1'; did you mean 'placeholders::_1'?
Undefined symbols for architecture x86_64:
  "libbitcoin::config::checkpoint::check
(edited)
My main confusion is whether or not I should need to install libbitcoin beyond installing with homebrew, which seemed to work
(edited)
I'm new to C++ so it's probably more basic to solve than I think. I have tried adding homebrew to the include path etc. but it still won't build. Although in VS Code it is able to find the libbitcoin header files so I know it can see them
pmienk00:23
when you say 'installed libbitcoin from homebrew' are you saying that you used a package manager to install libbitcoin?
Joel Klabo00:24
yeah, just brew install libbitcoin
on macOS
pmienk00:25
I'm unaware of anyone on the project who maintains the packaging. Not sure who could speak to what version is provided therein.
if its present and you attempt another alternative installation, the issue will be how or where you install it.
if the officially supported install script installs, then you should be able to link to it in your own project, as that would have been the mechanism used between libbitcoin projects.
however you'll have versioning issues related to which version the mastering bitcoin examples were written against
I don't recall off the top of my head if it works with version3 or if it's so old the examples would need to be modified regardless
Joel Klabo00:29
Yeah, I have followed the instructions from the README to install libbitcoin from from the script. But fails at the end on the boost step
pmienk00:30
what arguments did you pass to install.sh?
Joel Klabo00:30
` ./install.sh --build-boost --disable-shared`
I left out the prefix to use usr/local but I have also tried with a prefix in my home directory
neillm00:31
The code in the book was updated to v3.
pmienk00:31
cool, thanks @neillm!
(edited)
okay Joel, what error was produced by boost?
Joel Klabo00:33
I'm running again now to confirm...
download from sourceforge going pretty slow so still waiting but these are the steps I was following FYI
Screen Shot 2020-12-09 at 4.36.11 PM.png
evoskuil00:47
The homebrew package was a user contribution. Generating it is not part of our build and test process, so it’s not current.
I believe it’s v3 and am not aware of any problems with it.
Boost has many installable components, build options and versions, as well as a build bug. Reliance on separately-installed or built packages isn’t recommended as it’s the most common cause of build failures.
The build does not rely on the homebrew package, and you can avoid boost and other conflicts by installing into a prefix directory that doesn’t require sudo for priv escalation.
Joel Klabo01:08
I see, I am using the build script for libbitcoin-system I got this failure:
Building Boost.Build engine with toolset darwin...
Failed to build Boost.Build build engine
Consult 'bootstrap.log' for more details
I don't see bootstrap.log anywhere but I didn't use --prefix so I am trying with that. I'm also now realizing I'm not sure if I should be using libbitcoin-system or another package, that is the parent project, right?
pmienk01:10
libbitcoin-system is the base project required by all others. if you want bx, you'll want libbitcoin-explorer - the install.sh from a downlevel project will install the required dependencies
evoskuil01:11
FYI Boost builds successfully in our macOS automated builds.
pmienk01:12
but since he did it without prefix, who knows what collisions happened.
👍 1
Joel Klabo01:20
Yeah, I don't think there is an issue with libbitcoin I'm just trying to figure what I'm doing wrong
pmienk01:24
the first issue that i'd be concerned about is the installation. being able to successfully install any project past libbitcoin-system is proof that a project can be linked to that library and your examples can be linked without error.
Joel Klabo01:26
here's the bootstrap.log if interested:
bootstrap.log Plain Text · 7.7 KB
###
### Using 'darwin' toolset.
###
rm -rf bootstrap
mkdir bootstrap
cc -o bootstrap/jam0 command.c compile.c constants.c debug.c execcmd.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c class.c cwd.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c pathunix.c
execcmd.c:120:5: error: implicit declaration of function 'out_printf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    out_printf( "...interrupted\n" );
    ^
1 error generated.
make.c:132:13: error: implicit declaration of function 'out_printf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            out_printf( "...found %d target%s...\n", counts->targets,
            ^
make.c:184:17: error: implicit declaration of function 'out_printf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                out_printf( "fate change  %s from %s to %s (as dependant of %s)\n",
                ^
make.c:215:17: error: implicit declaration of function 'out_printf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                out_printf( "fate change  %s from %s to %s (by rebuild)\n",
                ^
make.c:300:9: error: implicit declaration of function 'out_printf' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        out_printf( "make\t--\t%s%s\n", spaces( depth ), object_str( t->name ) );
        ^
make.c:300:41: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
        out_printf( "make\t--\t%s%s\n", spaces( depth ), object_str( t->name ) );
                                        ^~~~~~~~~~~~~~~
make.c:85:44: note: expanded from macro 'spaces'
#define spaces(x) ( "                    " + ( x > 20 ? 0 : 20-x ) )
                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
make.c:300:41: note: use array indexing to silence this warning
make.c:85:44: note: expanded from macro 'spaces'
#define spaces(x) ( "                    " + ( x > 20 ? 0 : 20-x ) )
                                           ^
make.c:307:41: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
        out_printf( "make\t--\t%s%s\n", spaces( depth ), object_str( t->name ) );
                                        ^~~~~~~~~~~~~~~
make.c:85:44: note: expanded from macro 'spaces'
#define spaces(x) ( "                    " + ( x > 20 ? 0 : 20-x ) )
                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
make.c:307:41: note: use array indexing to silence this warning
make.c:85:44: note: expanded from macro 'spaces'
full file
pmienk01:30
the log points that what you're getting are errors that can be suppressed into warnings. curious, what's CC on your system?
i'm not a fan of suppressing errors, but i'm also not aware as to whether or not these are default warn or default error. so i'm curious if you're escalating to error on warnings in your environment, if there's been a compiler update, or if boost has modified its source for older versions without bumping the version number (which i don't think is likely)
👍 2
Joel Klabo01:40
honk at Honk-Mac in ~/src
$ clang --version
Apple clang version 12.0.0 (clang-1200.0.32.27)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

honk at Honk-Mac in ~/src
$ clang++ --version
Apple clang version 12.0.0 (clang-1200.0.32.27)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
pmienk01:43
well, there's a difference between our testbed,
Apple LLVM version 9.1.0 (clang-902.0.39.2)
75Target: x86_64-apple-darwin17.7.0
i'm not aware of what's changed, but that would be where to start. alternatively, you could simply try suppressing implicit-function-declaration, string-plus-int
Joel Klabo01:49
Thanks, yeah first clue there
Joel Klabo06:10
I made a PR to try running travis with the big sure macOS image: https://github.com/libbitcoin/libbitcoin-explorer/pull/675
(edited)
Joel Klabo16:51
FYI, looks like the issue was with boost 1.62, has been fixed since: https://github.com/libbitcoin/libbitcoin-system/pull/1174

Friday, December 11, 2020

evoskuil05:52
Thanks for tracking it down Joel, however these are generated files. Also the referenced build is failing.
Joel Klabo23:23
I see, where are they generated from? I'm probably not going to be able to fix this issue but just curious now
evoskuil23:29
See my reply in the PR

Saturday, December 12, 2020

Joel Klabo19:00
Thanks

Sunday, December 13, 2020

N
narodnik14:36
btc nearing 20k ATH. Expect a rally once that happens since it will start appearing on the news again.
could be a good moment to get out v4 and make a push during the rally

Monday, December 14, 2020

neillm05:24
I like the sentiment, and it's been in the works for a while now -- but v4 isn't ready yet. The actual release date may not be at all related to this (or any) rally.
neillm05:39
^ Was a response to a deleted message btw. No need to delete!
2 replies · Yoni Leitersdorf, neillm · last Dec 14, 2020
Yoni Leitersdorf16:32
I deleted the message because my message was a result of a misunderstanding of @narodnik’s message.
(edited)
👍 1
neillm16:46
No worries
evoskuil05:49
I started cleaning up my taproot branch last week. Still wrapped up in a lot of personal stuff, but hope to be able to kick into gear after the new year.
👍 1
N
narodnik11:22
amazing

Thursday, December 17, 2020

N
narodnik11:16
congrats everyone on btc price.
🎉 1👍 1

Tuesday, December 29, 2020

N
narodnik09:13
Institutions piling into Bitcoin. We've never seen anything like this before. But there is also a development crisis and leadership problems. With the growth in the market, there are going to be a lot of pressures to adapt Bitcoin to these new requirements. Combined with the power vacuum, we're heading into an interesting period where I think this project if it can position itself correctly, can play a very key role.
👍 2
evoskuil09:25
Yes

Wednesday, December 30, 2020

evan16:52
I want to contribute....but I am not a developer... :( but if there is anything that I can do to help....I would be happy to..
9 replies · neillm, evan · last Jan 05, 2021
neillm21:54
Consider running a full node, maybe community accessible? We could use some v4 servers people can test against.
evan00:14
LETS DO IT!!! What would be the best hardware to have? And what would be the most minimal hardware? I’ll get something in between.
neillm00:21
HW requirements are pretty flexible. I recommend fast storage (nvme/ssd), lots of cores (the more the better) and as much RAM as you can get. If you do the server rack thing, there's a lot of used hw on ebay that will do well (some with 128-256GB RAM). Otherwise, form factor doesn't matter much, get what you can work with. For v4, I have some recent snapshots, but you should be able to sync yourself. There are some bugs that may help prevent that, but reporting them if you hit them will help too.
neillm00:24
For storage, get a minimum of 1TB, but it's pushing that these days and if you want to 'future proof' a bit, go for at least 2TB for the chain alone. I think the current storage requirements (including indices) are over 600GB, but can get specific numbers if you need it.
neillm00:25
v4 storage requirements are less than that, btw, as it's more disk space efficient.
neillm00:28
Maybe some others will chime in too, but I think that basically covers it.
evan01:26
I really appreciate the advice, I think future proof is a great idea I would hate get it up and running just to have to upgrade right away...is Debian still your preferred platform?
neillm01:28
It's my personal preference, yes, but the distro in theory shouldn't matter. I think we saw some boost issues on ubuntu at one point, that haven't been tracked down (shared lib, not static)
evan05:49
Maybe the distro wouldn’t matter from a functionality perspective...but from a support perspective, if I need some pointers from a guy who knows things (neillm) the easiest way would be to use your preferred platform....I think