Bitcoin full node and query server

November 2020

Archive of the libbitcoin Slack #general channel.

Monday, November 2, 2020

L
Hi, forgive me, I am not up-to date, but what I see is a libbitcoin-protocol or a libbitcoin-server that cannot be built on travis ci / master. I'm trying to build locally libbitcoin-server and I don't thinkt it works either. What is the current status? More specifically when can it be expected to work?
neillm01:49
This is news -- all repos build currently
How are you building, and what are the errors?

Tuesday, November 3, 2020

L
"./install.sh --prefix=/home/ldz/libbtcNode/output --build-boost --disable-shared" is my build command
From what I know, I should expect 'bs' to appear inside "/home/ldz/libbtcNode/output", right?
I am build now, I will tell you what will happen.
evoskuil00:55
No
It ends up in a /bin directory
L
In my case /home/ldz/libbtcNode/output/bin?
evoskuil00:56
Something like that
L
Okay, I will check in a moment.
👍 2
L
the output folder contains only "include lib share"
neillm01:05
Can you post the install output in a gist or pastebin? There may have been an error somewhere, but we can't know where without a log
evoskuil01:05
Did the tests run, at the console out?
It is actually possible for the tests to run but no binary, due to a logged error.
L
the last lines of my build https://pastebin.com/sSDGFMK3
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.
evoskuil01:07
That explains the lack of a binary :)
neillm01:08
Hrm, I don't see the error, only warnings. So I'd say the full log is needed
👍 1
L
Ok, thanks. Unfortunately, I have to go. I will upload the full log tomorrow. HAND, afk
👍 2

Wednesday, November 4, 2020

L
Hi, the full build log file is completed. it should be stdout+stderr. but the log is to large for paste services like bpaste or pastebin. I had to throw it on some download site. https://easyupload.io/pzi7wp
neillm01:49
What's the command line? Looks like you need to add --with-zmq --build-zmq
I also recommend the target/install dir should be completely removed/empty
L
Both were empty. I am trying zmq.
👍 1
L
@neillm "# TOTAL: 1 # PASS: 1" ;)
it works. thank you :).
👍 2
neillm02:09
Glad to hear

Sunday, November 8, 2020

L
Are there any plans or works on creating bitcoin specifications in the bitcoin community? As far as I understand, the core implementation serves as a kind of specification. However, this is more painful than reading a more abstract specification.
2 replies · evoskuil, Slackbot · last Nov 08, 2020
evoskuil18:41
I’ve considered it. Libbitcoin is designed to facilitate understanding, and is a good first step. I believe it was the go node that used libbitcoin script as its reference implementation. People who work on the satoshi prototype consider it impossible and have led others to believe the same. That’s clearly nonsense and merely a consequence of the impenetrable design.
(edited)
Slackbot18:41
👻
evoskuil18:41
replied to a thread: view
I’ve considered it. Libbitcoin is designed to facilitate understanding, and is a good first step. I believe it was the go node that used libbitcoin script as its reference implementation. People who work on the satoshi prototype consider it impossible and have led others to believe the same. That’s clearly nonsense and merely a consequence of the impenetrable design.
(edited)
L
Ok, thanks.

Wednesday, November 11, 2020

fpelliccioni15:12
There are some people working on that.

Thursday, November 12, 2020

L
@fpelliccioni on what? bitcoin spec? ant more detailed info?
1 reply · fpelliccioni · last Nov 12, 2020
fpelliccioni15:13
Bitcoin Cash specification, it is not exactly the same as Bitcoin BTC, but the differences are not many.
L
any
fpelliccioni15:13
replied to a thread: view
Bitcoin Cash specification, it is not exactly the same as Bitcoin BTC, but the differences are not many.

Saturday, November 14, 2020

N
narodnik21:36
What a load of propaganda they lead people to believe there can only be one Bitcoin software
Sadly it means the entire ecosystem becomes stagnant. The core software is very very bad yet most people are unaware
evoskuil23:56
Yep

Monday, November 16, 2020

L
I think that most people are not aware that there are alternatives.

Thursday, November 19, 2020

P
Phil14:47
Hello guys! How do I configure my LB node to [effectively] be an SPV node?
12 replies · neillm, Phil, evoskuil · last Nov 21, 2020
neillm15:02
There is no "SPV mode" in libbitcoin-node, or libbitcoin-server. If you mean, how can you find information on the chain without running a server, check libbitcoin-explorer (command line) or libbitcoin-client (API). There are plenty of query and subscription commands and community run (version3) servers that you can connect to.
neillm15:26
The v4 client adds a fetch-block-hashes command (i.e. bx fetch-block-hashes -t 100000) where you can get a properly ordered list of transactions in a block. If you needed to generate a merkle proof for a particular tx, you could use that result. This new command does work against version3 servers if you wanted to try it:
/bx fetch-block-hashes -t 100000
hashes
{
    hash 8c14f0db3df150123e6f3dbbf30f8b955a8249b62ac1d1ff16284aefa3d06d87
    hash fff2525b8931402dd09222c50775608f75787bd2b87e56995a7bdd30f79702c4
    hash 6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4
    hash e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d
}
neillm15:27
Of course in combination with a fetch header call:
/bx fetch-header -t 100000
header
{
    bits 453281356
    hash 000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506
    merkle_root f3e94742aca4b5ef85488dc37c06c3282295ffec960994b2c0d5ac2a25a95766
    nonce 274148111
    previous_block_hash 000000000002d01c1fccc21636b607dfd930d31d01c3a62104612a1719011250
    time_stamp 1293623863
    version 1
}
P
Phil16:38
Eric has been clear that you can patch LibBitcoin v4 to do header only sync, but i haven’t gone into discussion about where the logic/toggle is 🙂
P
Phil16:45
oh, actually, I’m not using the CLI, only the C++ API. I’d like to have a LB node class instance to do header sync only
P
Phil16:47
Then I’d like to navigate that header sync only block header chain via the API and embed it in a smartphone app
P
Phil18:26
@evoskuil could you check this thread?
P
Phil19:49
@neillm would you mind taking another look to this thread? I’d appreciate that
neillm21:49
I've read it. Is there a question?
evoskuil21:53
The headers protocol in v4 performs header sync. You can bind it and not the block sync protocol, in your own implementation if that’s what you want.
evoskuil21:53
If you avoid block sync then v4 is in pretty good shape.
P
Phil13:02
Wow, that’s great news! Thank you, guys!
P
Phil18:08
Btw, how mature is v4 now?
are there any operational issues in the node known?
evoskuil18:10
The code base is mature, I consider it release quality, with the exception of v4/master blockchain. It is incomplete.
P
Phil18:14
I see. And what’s incomplete about it?
any idea when it’ll reach release quality?
evoskuil18:21
Continuous parallel block download is not optimized and likely has a deadlock and possibly other bug(s).
(edited)
P
Phil18:25
oh i see. is there some slower mode i can run it in that is more tested/proven?
evoskuil18:25
V3
P
Phil18:32
if we run V4 and ever see some peculiar behavior there, what debug command should we run to dump state so you could easily debug it?
evoskuil18:35
That prolly won’t help. It’s just an issue of time, not mystery bugs. The deadlock is reproducible.
P
Phil18:39
i meant, while using V4, is there any config setting i could run to make it be safer… because we like esp header first sync all that and really wish to use v4
evoskuil18:40
No, the sync is not a special case.
(edited)
P
Phil18:55
Thank you for the clarifications!
neillm21:17
^ While that's all true, if you want to work with v4 mainnet, you can sync with a high checkpoint to get the chain. You may want to snapshot it periodically and resume from there if you run into issues though.

Friday, November 20, 2020

P
Phil17:42
Ok In what kind of timeframe do you wildguess it will be stable, say next 4mo?
2 replies · neillm, Phil · last Nov 20, 2020
neillm17:43
Hard to say. The answer has always been "when it's ready" :-)
P
Phil18:29
I see! Ok then! thank you!

Saturday, November 21, 2020

P
Phil12:57
Hello there! In script.hpp you use size_t for one of is_coinbase_pattern ’s parameters. But is that enough? I mean, `size_t` is an unsigned int after all. Shouldn’t it be a uint64_t?
(edited)
2 replies · neillm, evoskuil · last Nov 28, 2020
neillm14:05
size_t is generally 64 bits on 64 bit systems. Parts of libbitcoin (such as database) require 64 bit systems also.
evoskuil21:49
We use size_t for any integer domain that varies by the underlying platform, if 64 bits is required we explicitly use uint64.

Sunday, November 22, 2020

L
Should windows files like .cmd be saved in libbitcoin repo with windows line endings CRLF or not? I see there are not. Is it simply the rule that in your repo all the files are stored with LF? What are the best github practices?
5 replies · neillm, ldz, evoskuil · last Nov 28, 2020
neillm00:40
Not sure, I don't use windows, but I think it's safe to use the 'unix' convention across the board, as it's compatible in both (if I recall correctly ... ?)
(edited)
L
To be frank I don't know that consequences the lack of CR on windows has. I lack the knowledge. For a git user I believe it doesn't matter much. On windows the git (default VS config) knows what to do during pulling and automatically adds CR. While pushing, I don't know what would happen. Perhaps it requires configuration on the client side. Apart from that there are also third part systems like appveyor and I don't know how important this is to them.
L
As far as I see and what stackoverflow says the windows defualt strategy is "core.autocrlf=true". That means convert lines to CRLF on checkout and convert lines to LF when adding files. On linux the strategy is "=input". That doesn't convert lines on checkout and convert lines to LF if needed when adding files. It sounds very clear and reasonable. If other systems (like appveyor) stick to this convention, I do not see a problem either.
L
In short, 'unix' convention across the board sounds good.
👍 1
evoskuil21:50
The convention is to rely on checkout conversion.

Tuesday, November 24, 2020

N
narodnik11:34
Deribit Insights
In his essay “Bitcoin’s Existential Crisis”, Nic Carter describes the identity problem that is inherent to Bitcoin. Because no one has the authority to give decentralized systems an identity, they rely on intersubjective consensus around a set of practical core values.
"(1) The logic is that a censor always earns the block subsidy, but only the fees of uncensored transactions. I want to link to Eric’s Voskuil’s post on the matter, but Libbitcoin.org seems to be down right now"
1 reply · evoskuil · last Nov 28, 2020
evoskuil21:45
Yes, we still don’t have the domain transfer. It’s up on Libbitcoin.info. Also, the topics are listed there, they are in the Libbitcoin-system GitHub wiki.
N
narodnik11:34
(at the very bottom of the article)
neillm13:04
Hrm, I think https://libbitcoin.info/ is the mirror that tends to be up. We should start referencing that in most places.
👍 1

Saturday, November 28, 2020

L
@pmienk @evoskuil did you develop the GSL code generator?
evoskuil21:43
👍
L
My working directories: /home/ldz/work and c:\users\ldz\work. my "a.gsl" script https://pastebin.com/rBshaAdD Calling "gsl a.gsl" inside the work directory prints "/home/ldz/work/" and "c:\users\ldz/". Why? Bug or feature? I am asking because I believe it is related to https://github.com/libbitcoin/libbitcoin-build/issues/228
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.

Sunday, November 29, 2020

L
I see there is a GSL extension for visual studio code written by marvhen 😋. However, it is a little buggy. It treats /* ... */ inside templates as comments. And it is rather not developer anymore. https://github.com/marvhen/vscode-gsl
2 replies · evoskuil, ldz · last Nov 29, 2020
evoskuil22:49
GSL isn’t even really in development any more. I was one of the last to apply some patches. So a VS extension prob isn’t going anywhere.
L
👍