Bitcoin full node and query server

May 2019

Archive of the libbitcoin Slack #general channel.

Wednesday, May 1, 2019

A
adys13:30
(edited)
neillm14:53
It does appear so. We don't control that domain. Would you mind sending a mail to the mailing list?
neillm16:36
@adys I sent mail on this, thanks for reporting.
Actually, my mail bounced, weird

Thursday, May 2, 2019

skaht00:36
In two sentences, the theoretical cybersecurity essence of Bitcoin is that it is literally a distributed open source high integrity cross domain solution (CDS) that implements the 30 year old Clark-Wilson Security Model to protect a transaction ledger, and Bitcoin happens to be the 1st recognized solution of the computer science Byzantine General’s Problem. Because of the integrity of the distributed BTC Blockchain accounting of transactions (due to consensus rules, mining, and public key cryptography) Bitcoin solved the decentralized double spend problem, leading to currency being the first real world application of Bitcoin network computing technology.
Rules of the Clark-Wilson Security Model are summarized at the bottom of https://en.wikipedia.org/wiki/Clark%E2%80%93Wilson_model.
A
adys09:05
@neillm sure, this mailing list? libbitcoin@lists.dyne.org
neillm11:38
@adys Yes, I believe the second one I sent went through ok
N
narodnik23:42
@pmienk @Phil btw for extract_output() ... there are many different output scripts with valid address types.
multisig, pubkey send, stealth .etc
evoskuil23:43
We don't extract multisig addresses and stealth is extracted by the stealth address object.
But v4 payment indexing will not care, it will index any script.
This is primarily used to obtain the key for indexing payments, and is essentially the same behavior as originally.
1 reply · evoskuil · last May 02, 2019
evoskuil23:46
By "this" above I mean the v3 address-based indexing.
N
narodnik23:45
ah ok

Saturday, May 4, 2019

G
Guille Escobero12:02
Hi, I'm having some trouble subscribing to inv messages. I want to listen and print the hashes of all the inv messages received. I got the example code from https://github.com/libbitcoin/libbitcoin-network/wiki/New-Channel-Subscriptions and modify it to, instead of subscribing to the headers message, also subscribe to inventory messages. I'm sure this is a silly question, but I don't know what I'm missing.
evoskuil21:23
Can you be more specific? Code link, behavior?

Sunday, May 5, 2019

G
Guille Escobero10:19
Is this code example. https://github.com/libbitcoin/libbitcoin-network/wiki/New-Channel-Subscriptions#new-channel-subscription-example . I've changed channel->subscribe<bc::message::inventory>(headers_subscription_handler); Instead of bc::message::headers, and changed the declaration of headers_subscription_handler to const auto headers_subscription_handler = [](const bc::code& ec, bc::message::inventory::const_ptr message)
(edited)
1 reply · evoskuil · last May 12, 2019
evoskuil19:59
What is the behavior you are seeing?

Tuesday, May 7, 2019

evoskuil19:26
and what is the behavior?

Saturday, May 18, 2019

N
narodnik04:01
const std::string master_chain_code = "xpub68xePK7VvVcVQikShVGveYd8c7eTsU8VW2RmjVpfLuPn2v188qBeT9hhXTsDi3qrTQMj6uuvwMm4jtm6WiySEpSoF54fEaSmqs1mxP3v6W7";

std::string get_address(uint32_t user_id, uint32_t chain_index)
{
    bc::wallet::hd_public master(master_chain_code,
        bc::wallet::hd_public::mainnet);

    auto user_chain = master.derive_public(user_id);
    auto key_chain = user_chain.derive_public(chain_index);

    bc::wallet::ec_public public_key(key_chain.point());

    auto payaddr = public_key.to_payment_address();
    return payaddr.encoded();
}
Am I doing this right?
skaht04:33
https://brainwallet.bchtools.app/#verify works for: -----BEGIN BITCOIN SIGNED MESSAGE----- Address 16cou7Ht6WjTzuFyDBnht9hmvXytg6XdVT does not belong to Satoshi or to Craig Wright. Craig is a liar and a fraud. -----BEGIN SIGNATURE----- 16cou7Ht6WjTzuFyDBnht9hmvXytg6XdVT G39S6i4XsfQnixN5ePMjVPboWvGXdnW8xFFAXiwEriZFCclflbD7umP58u3Sl+dvvXC5BxBrRNkTMNf92O1UIXw= -----END BITCOIN SIGNED MESSAGE----- However, https://github.com/libbitcoin/libbitcoin-explorer/wiki/bx-message-validate seems to fail for the monumental test vector above.
brainwallet.bchtools.app
bitcoin address generator
Slackbot04:33
👻
evoskuil05:16
Then they are using a different algorithm. There are many different possible algorithms. Libbitcoin uses the same as Electrum.
@narodnik It seems rational. There are test cases in bx and system that demonstrate the intended behavior.

Sunday, May 19, 2019

skaht02:51
The test vector above has traceability to https://news.bitcoin.com/craig-is-a-liar-early-adopter-proves-ownership-of-bitcoin-address-claimed-by-craig-wright/ that indicates Jameson Lopp used bitcoin-cli to make a validation.
Bitcoin News
The message, which is verified to be the owner of the bitcoin address used in the lawsuit, claims the address never belonged to Satoshi or to Craig Wright.
evoskuil04:13
So he didn’t use Electrum.

Monday, May 20, 2019

L
Hi, I have a slight question. If you look at https://github.com/libbitcoin/libbitcoin-system/pull/1114/commits the bcf6908 is the only one important commit for the pull request (from my point of view). But there is also 18c6c56. 18c6c56 was added some time ago to libbitcoin, see https://github.com/libbitcoin/libbitcoin-system/pull/1065 I hoped that github would only take the diffs between two branches. In other words why is the commit listed in the pull request?
I think my idea of git is a bit wrong.
pmienk22:08
Looks like you wanted to rebase, not merge.
Merge took the changes to remote/master and added them at the head of your branch. Rebase layers the changes in your branch over the remote/master
L
@pmienk: ok, the github page says "able to merge" after creating new pull request. is there an option to rebase?
pmienk22:20
To avoid the merge, locally you need to have rebased, not creating a merge. Then you need to force push the changes into your fork. A pull request between forks would then not contain a merge
pmienk22:27
@ldz To get there you may have to roll back locally and then cherry pick back your changes. Then rebase from libbitcoin/master. If this sounds like gibberish, I can endeavor to clarify.
L
@pmienk ok thanks, I partially understood it. but not sure how far backwards do I have to do the roll back? I think my problem is actually I am not sure when I first reached a secure state.
pmienk22:38
@ldz I believe you'll want to reset head to the commit prior to the merge, cherry pick the commits not from the merge, then rebase from remote master. After that you can force push into your fork and the pull request will update
L
@pmienk I have to go now. I will try it soon. Otherwise I will contact you again. thank you.

Tuesday, May 21, 2019

N
narodnik10:04
thanks eric
L
@evoskuil: Sorry, I am a little confused about your comment. I hope you mean "GENERATED SOURCE CODE, DO NOT EDIT...", but I believe inside "Files changed" there don't exist such files or please give me a counterexample.
7 replies · neillm, ldz · last May 22, 2019
neillm22:47
@ldz If you clean up the pull request to just the actual changes, it would help make it more reviewable.
neillm22:49
As @pmienk suggested, a rebase or just checking out master and then cherry-picking the proper commit should take care of it (along with a force push over your light-cleanup branch).
L
neillm: ok but it is not the result. the repo contains these changes already.
neillm11:07
I understand. But they appear in your PR, which confuses matters. Thus the request to clean it up 🙂
L
ok, I will do
L
afk

Wednesday, May 22, 2019

N
narodnik03:57
How can I generate HD wallet testnet addresses?
echo e171367ca589c056589c5a837b5f79b3aea61d947b5dccd5 | bx hd-new | bx hd-public | bx hd-to-ec | bx ec-to-address
evoskuil04:02
Use config to set version info or set using the version parameter on the command line. https://github.com/libbitcoin/libbitcoin-explorer/wiki/bx-hd-new
N
narodnik04:06
aha thanks
$ echo e171367ca589c056589c5a837b5f79b3aea61d947b5dccd5 | bx hd-new -v 70615956 | bx hd-public | bx hd-to-ec | bx ec-to-address
Error: the argument ('ERROR_VERSION') is invalid
Error: the argument is invalid
evoskuil04:11
Hm, doesn’t make sense. There is no argument called error_version.
N
narodnik04:12
ah i know
$ echo e171367ca589c056589c5a837b5f79b3aea61d947b5dccd5 | bx hd-new --version 70617039 
tpubD6NzVbkrYhZ4WVyJejvGGNMQ22hjnaJAjJJhb2TPkwWNgek3fY5CLfqF5rVZ8XH4kdVeQaZHv66NegB8nArXhnXJkyCX29w2RWC45PCwJWn
the hd-public needs a switch too
evoskuil04:12
This is my result:
bx hd-new e171367ca589c056589c5a837b5f79b3aea61d947b5dccd5 -v 70615956 tprv8ZgxMBicQKsPd2wWm6FfrxhHT1BodF7G9zhvJWR6LfhyrAVH39FcABDNuoS9XDZYvS3WteYFsb6fougUcrrgsYkSi1M99fBnpnTq152hXgW
Ahhh
yes, a mismatch.
Always best to split them up until you have it down.
N
narodnik04:13
$ echo e171367ca589c056589c5a837b5f79b3aea61d947b5dccd5 | bx hd-new --version 70617039 | bx hd-public -s 70617039
xpub68xePK7Maq5XDpYmLb9M82bNgTAuwCDfFC7tNJrmLZgBDAPgeXDHz3MKyXihRXEZNRHf46h691DpayeCJ7pcgYg5FJQJpR5R9dMAdxvfa2S
evoskuil04:13
If you set it in config it changes the defaults for all.
N
narodnik04:13
thanks yep
evoskuil04:13
Curious about the parser text, but it's boost.
Maybe piping garbage to next command.
(edited)
N
narodnik04:18
ah yes
N
narodnik05:26
btw i'm using pybind11. It's kind of becoming standard now for C++ python bindings, the others being cython (good for if you want to optimise python code with c loops) or cffi (dynamic libraries but not the most efficient)
evoskuil05:27
How much work have you done with libbitcoin?
(In general, not just the bindings.)
N
narodnik05:28
I'm working on a potentially big project now but we're still in the research phase
harry has cryptographers reviewing our paper now
evoskuil05:29
where r u?
N
narodnik05:29
syria lol
but harry is in NY and texas
evoskuil05:30
I ask because I'm doing a 17 day solo motorbike trip through Western Europe in June, round trip from London.
Don't think I'll get to Syria on this one.
N
narodnik05:30
ah ok harry i think will be in paris
i sent you the paper on signal
evoskuil05:30
I'll be there for one night, June 17
N
narodnik05:30
it's not for sharing right now
evoskuil05:30
cool, thx
N
narodnik06:06
$ echo tpubD6NzVbkrYhZ4WmUsVtDM62qG5zPPbAApWqc9nsqT6sYAcDvs1MtVSHG8otsqy45G33nmaBHe4TWNpuQZk3sLX19rfRsYoKmirQuWbuL6TED | bx hd-public -i 0 -s 70617039 -p 70617039 | bx hd-public -i 110 -s 70617039 -p 70617039
I get:
tpubDBAE2dXw4Sxt4JJQheSzdEzoozchwRmScq9FXLEAHLj4spM2YTi9BXQmiRcDac2pJfequB8UbLJaAUc3f8iiia2hr9ac2sKckvZURtomCxs
#include <bitcoin/system.hpp>

const std::string master_chain_code = "tpubD6NzVbkrYhZ4WmUsVtDM62qG5zPPbAApWqc9nsqT6sYAcDvs1MtVSHG8otsqy45G33nmaBHe4TWNpuQZk3sLX19rfRsYoKmirQuWbuL6TED";

std::string get_address(uint32_t user_id, uint32_t chain_index)
{
    bc::system::wallet::hd_public master(master_chain_code,
        bc::system::wallet::hd_public::testnet);

    BITCOIN_ASSERT(bc::system::wallet::hd_public::testnet == 70617039);
    BITCOIN_ASSERT(master);

    auto user_chain = master.derive_public(user_id);
    auto key_chain = user_chain.derive_public(chain_index);

    // This line asserts
    BITCOIN_ASSERT(user_chain);
    BITCOIN_ASSERT(key_chain);

    bc::system::wallet::ec_public public_key(key_chain.point());

    auto payaddr = public_key.to_payment_address(0x6f);
    return payaddr.encoded();
}

int main()
{
    get_address(0, 110);
    return 0;
}
this code fails where there is the comment.
when I put it through the debugger it shows it returning {} in the first derive_public() failing on the call to ec_add
hd_public hd_public::derive_public(uint32_t index) const
{
    if (index >= hd_first_hardened_key)
        return {};

    const auto data = splice(point_, to_big_endian(index));
    const auto intermediate = split(hmac_sha512_hash(data, chain_));

    // The returned child key Ki is point(parse256(IL)) + Kpar.
    auto child = point_;
    if (!ec_add(child, intermediate.left))
        return {};

    if (lineage_.depth == max_uint8)
        return {};

    const hd_lineage lineage
    {
        lineage_.prefixes,
        static_cast<uint8_t>(lineage_.depth + 1),
        fingerprint(),
        index
    };

    return hd_public(child, intermediate.right, lineage);
}
It works though with normal address (non-testnet)
evoskuil07:31
I don't see anything that looks wrong. There are two testnet unit test cases in bx for hd-public. Maybe try those test vectors in your system code.
Actually just one that's applicable...
N
narodnik09:56
ok using the testnet wallet settings in bx.cfg fixed the problem
        hd_public_version 70617039
        hd_secret_version 70615956
        pay_to_public_key_hash_version 111
        pay_to_script_hash_version 196
        transaction_version 1
        wif_version 239
evoskuil21:36
But the same explicit settings have a problem? If so please write it up. Also, I found that the ERROR_VERSION text is just a placeholder error message still in the code. The parameterization of this command was changed to allow for full altcoin support., used to be just "--version". Wiki doc also needs to be updated.

Thursday, May 23, 2019

N
narodnik03:48
ok will look at this later today
what do you think of lightning? I only have superficial knowledge of it but think it has serious problems. It seems very fragile and completely non-anonymous.
evoskuil04:22
It's got issues, but since I haven't implemented it and don't work on it I try to avoid public comment on it specifically. Layering in general makes sense, but there will always be tradeoffs against on-chain confirmation.
N
narodnik05:54
line 82 libbitcoin-protocol/src/zmq/certificate.cpp:
    for (uint8_t attempt = 0; attempt <= max_uint8; attempt++)
that looks like an infinite loop to me
for (uint8_t attempt = 0; ; attempt = (attempt == max_uint8) ? 0 : (attempt + 1))
N
narodnik13:09
is thecodefactory on here?
14:02:17.252259 WARNING [network] Failure connecting [testnet.libbitcoin.net:18333] manually: service stopped
neillm14:08
Here
It appears to work for me though
Try testnet1.libbitcoin.net (should be mapped to the same though)
N
narodnik15:15
oh hello, hows it going
ok idk maybe i haven't configured testnet properly...
what happened to bs.testnet.cfg ... how comes eric got rid of them?
evoskuil15:18
The info is in the cfg comments
N
narodnik15:18
it's a lot of copy paste
neillm15:23
I don't recall there being a bs.testnet.cfg specifcally, but I tend to have files like that hanging around locally for testing (same for bx.cfg)
It is a lot of copy/paste, but the config options don't change so rapidly that it needs to be re-done very often (at least as of late ;-)
evoskuil15:26
Especially in the server and node, it’s too big to keep in sync. So updated them all for consistency.
And we have other configs now too (6 total with regest and ltc).
neillm15:28
Maybe we need a generated config repo 😉
16:22:22.307190 INFO [server] ================= startup Thu May 23 18:22:22 2019 ==================
16:22:22.307216 WARNING [server] ================= startup Thu May 23 18:22:22 2019 ==================
16:22:22.307259 ERROR [server] ================= startup Thu May 23 18:22:22 2019 ==================
16:22:22.307274 FATAL [server] ================= startup Thu May 23 18:22:22 2019 ==================
16:22:22.307285 INFO [server] Using config file: "/home/kk/usr/etc/libbitcoin/bs.cfg"
16:22:22.307299 INFO [server] Please wait while the server is starting...
16:22:22.308752 INFO [network] Starting manual session.
16:22:22.309198 INFO [server] Seeding is complete.
16:22:22.309232 INFO [node] Top confirmed block height is (0).
16:22:22.309260 INFO [node] Top candidate block height is (0).
16:22:22.309274 INFO [node] Top valid candidate block height (0).
16:22:22.309283 INFO [node] Pending candidate block downloads (0).
16:22:22.309329 INFO [network] Starting inbound session on port (18333).
16:22:22.309452 INFO [network] Starting outbound session.
16:22:22.310787 INFO [server] Bound public query service to tcp://*:9091
16:22:22.311137 ERROR [protocol] Configured HTTP root path '"web"' does not exist.
16:22:22.311199 INFO [server] Server failed to start with error, operation failed.
16:22:22.311339 INFO [server] Please wait while the server is stopping...
neillm15:30
Yes, there's a PR that needs some work that won't require that you create that web directory. However, if you create it, I'll send you a file you can place in it so that it looks like this: http://testnet2.libbitcoin.net:29071/
Actually if you just save that page source, it may just work(?)
The thought is that if no web dir is specified, we use some internal default page (perhaps resembling that single page I've been testing with and have online as a test/demo). However, if you want to write your own custom interface, provide the code in some directory and specify which in the config and it'll be served up from there
This is the PR referenced, I've been meaning to revisit/clean it up: https://github.com/libbitcoin/libbitcoin-server/pull/508
Let me know if that makes sense for now. Sorry it's busted out of the box at the moment.
evoskuil15:44
;)

Friday, May 24, 2019

N
narodnik06:11
ok thanks I did mkdir web and now it's working
👍 1

Saturday, May 25, 2019

N
narodnik07:41
I'm using github master. When I try to close the server daemon, it never shuts down. This is the 3rd time I've tried... Problem always repeats itself.
18:49:12.765642 INFO [network] Connected outbound channel [47.93.2.31:18333] (3)
18:49:13.496026 INFO [network] Connected outbound channel [130.149.80.221:18333] (4)
^C18:49:25.779394 INFO [server] Stop signal detected (code: 2).
18:49:25.787230 INFO [server] Please wait while the server is stopping...
^C08:33:07.591696 INFO [server] Stop signal detected (code: 2).
2 replies · neillm, narodnik · last May 26, 2019
neillm11:59
I've been running testnet mostly for testing the latest code and haven't seen issues like that. Just shut down a running instance normally too to double check. Anything special about the setup?
N
narodnik13:39
no, I just am running on a normal laptop.
N
narodnik07:41
(see difference in timestamps)
N
narodnik09:48
Downgraded from 4.0 master to 3.2 release, and it's operating as normal.

Sunday, May 26, 2019

N
narodnik13:35
I'm syncing testnet and according to block explorers, it's currently 1.5 million blocks long... at the rate I'm syncing it will take approx 1 month to fully sync. why hasn't testnet been reset? damn the chain is too long for testing.
38 replies · neillm, narodnik · last May 27, 2019
neillm00:58
I usually start a full testnet sync in the evening and it's done by the next day. Is the limiting factor at the moment the bandwidth available or disk? A month seems rather excessive.
neillm00:59
This does assume using an ssd -- I haven't tested on spinning disk in some time, but used to do that regularly in the v2 days.
N
narodnik11:38
Weird, I am on an SSD with a laptop
N
narodnik11:46
It seems limiting factor in this case is the disk
neillm11:47
I've had laptops with rather slow SSDs, likely slower bus speeds. But a month still sounds quite unreasonable for testnet. Mainnet in a bad case shouldn't take longer than that 🙂
neillm11:48
v3 or v4? Shouldn't matter at that kind of timeframe, but just curious
N
narodnik11:48
v3
neillm11:48
Ok, and still having the shutdown issue between attempts?
N
narodnik11:48
v4 has a problem for me where it doesn't stop. I leave it for several hours and it's just hanging
N
narodnik11:48
yep
neillm11:49
That's unfortunate. The only difference on my current setup is that I'm running a modified protocol and server, based on these PRs: https://github.com/libbitcoin/libbitcoin-protocol/pull/202
neillm11:50
It's possible there is web code causing a hang that was resolved in there a while ago, but I don't recall anything like that.
N
narodnik11:50
That's a good PR
neillm11:51
Thanks! It's been useful for testing here. Still some unknowns on how to handle the default content, but it's a start
N
narodnik11:52
It's good websockets have been added, maybe even more useful than ZMQ. Still it's a shame ZMQ itself didn't add websockets as a protocol option. It's been a lingering request for years.
neillm11:52
Interesting, I didn't know that was on the table.
neillm11:54
Agree though, that ZMQ is the better way to go generally, but these days, it seems almost everyone knows websockets via browser js or node.js
neillm11:55
In any case, you're welcome to give those branches a test build and see if it resolves the start/stop issue. I'm fairly certain when I re-build vanilla v4 master, it doesn't hang, but it's been a while. I have a pile of outstanding PRs I've been testing with lately
N
narodnik11:56
my plan is to get a server and set it up for testing
N
narodnik11:56
then others can login too
neillm11:57
Ah, something like that could be good, or chaotic 😉
neillm11:59
Oh, about the hang -- static or shared library build?
N
narodnik12:00
shared, I built it locally
N
narodnik12:00
manually myself
neillm12:00
I've seen a hang using a shared library build because of something related to boost on ubuntu that I was unable to resolve. Statically linking to boost worked on that machine, but I couldn't determine why it was hanging inside of boost otherwise
neillm12:01
Gdb would consistently trap it at the same spot in some innocuous boost code on shutdown.
N
narodnik12:01
when I get time I will try to look where it's hanging
neillm12:01
Thanks, am curious if that has come back
N
narodnik12:01
i'm on arch
neillm12:02
I don't know that it was specific to ubuntu, but a user reported it on ubuntu and I setup a VM for testing, and was able to replicate it
N
narodnik12:03
there should be a stop() call in the blockchain anyway
N
narodnik12:03
(if that's what's causing a slow shutdown)
N
narodnik12:07
no idea I didn't check
N
narodnik12:08
ah ok there is a stop() method, right
neillm12:09
If the shutdown hang isn't like that odd boost one I was seeing, I am curious if there's a locking issue on shutdown that I'm just getting lucky on and not seeing
(edited)
neillm12:10
I almost always build statically these days too, so am curious if that will help for now. If you get a chance, give that a shot
Revive15:35
There's regtest too
N
narodnik16:52
is it possible to use regtest with electrum?

Monday, May 27, 2019

L
@pmienk Hi. Sorry, I don't understand your comment https://github.com/libbitcoin/libbitcoin-build/pull/196 My changeset renames libbitcoin to libbitcoin-system (not the other way around). The previous code libbitcoin.git doesn't download libbitcoin-system/src and it seems to be a problem for "generate.sh".
pmienk17:44
The repository on GitHub is named libbitcoin-system. It was renamed from libbitcoin and the path https://GitHub.com/libbitcoin/libbitcoin performs a redirect to libbitcoin/libbitcoin-system.
GitHub
Bitcoin Cross-Platform C++ Development Toolkit. Contribute to libbitcoin/libbitcoin-system development by creating an account on GitHub.
Your local directory name could be specified as anything via git clone <repo> <directory>. Libbitcoin-build relies on the canonical name
L
I would expect it behaves like an alias but it is cloning into "libbitcoin" instead of "libbitcoin-system"
pmienk17:47
The fact that the redirect defaults to the path specified prior not post redirect is not something build should rely on
To me it's a glass half full behavior, as the prior version branches required no update to function correctly from install script, while they break if the clone is canonical and/or the branch is changed.
Additionally, the change you made would still fail to update generated artifacts due to their reliance on the xml encoded name for pathing.
Did you encounter this issue because you were working on libbitcoin/version3 but using libbitcoin-build/master?
L
@michael I'm not deep in it and I do now know all the dependencies. I just noticed that the "quick start" provided by libbitcoin-build's readme does not work out of the box. It produces the "libbitcoin-system/src" error. I am working only with master.
*I don't know
pmienk17:59
If that's so, then running the libbitcoin-system/master install.sh will generate the libbitcoin-system directory instead of libbitcoin. If your fork is the source of the issue, it can be renamed or you can 'git clone <repo> libbitcoin-system' to restore the canonical name locally
L
not sure what do you mean with "fork". fork = clone? I am working only with libbitcoin's repositories cloned by git. "it can be renamed or you can 'git clone <repo> libbitcoin-system'" but it is what my commit does. If I understood you correctly earlier, it should not be helpful(?)
pmienk18:04
On GitHub you fork your own copy, modify, and issue pull requests back to libbitcoin projects. Or so is the workflow I follow.
(edited)
L
OK, so I am not talking about my github forks.
Only about the official repositories and git cloning.
like mentioned in quick start
pmienk18:08
Okay. Then your commit would break libbitcoin projects installed via master branch install.sh scripts and their ability to update from libbitcoin-build/master. It's possible that the quick start needs to be modified. I'm sorry if that's the case.
L
OK. that means the commit is not good, but the problem will still exist. So, I would like to open an issue. Is it ok for you?
pmienk18:11
Looks like a readme.md referencing libbitcoin/libbitcoin should be libbitcoin/libbitcoin-system
L
Or do you try to set something like it is not perfect but it is good enough and it should stay as it is?
*to say
pmienk18:11
Feel free to file an issue. I'll try and take care of it
L
"Looks like a readme.md referencing libbitcoin/libbitcoin should be libbitcoin/libbitcoin-system" what do you mean?
pmienk18:12
Looks to me that the correction is in documentation
L
@michael and more exactly?
pmienk18:14
If the quick start associated with a master branch is pointing you to clone GitHub.com/libbitcoin/libbitcoin, then that should be modified.
L
the quick start associated with a master branch is pointing me to clone https://github.com/libbitcoin/libbitcoin.git (not libbitcoin-system.git). my commit contains a change related only to README.md (not generate.sh!)
pmienk18:18
Oh, if that's the case I apologize. I thought I saw the change stripping -system, not adding it.
L
no :)
pmienk18:19
My bad, I'll accept the pr. Sorry to have wasted your time over a bad read
L
no problem, you're welcome :)

Thursday, May 30, 2019

L
hi, is someone working with libbitcoin-system/master inside visual studio? the libbitcoin-system-examples and libbitcoin-system-test projects don't recognize #include <bitcion/system.hpp>. "Cannot find directory 'bitcoin' in search patterns". before renaming it worked like a charm. maybe I am doing something wrong, but I do not know what :).
neillm13:28
There's a typo in your include (bitcoin mis-spelled), I'm assuming that's just an error in typing here?
L
@neillm yes, I didn't change the include
@neillm I mean there is "bitcoin" not "bitcion"
neillm13:30
I don't use VS, but it sounds like there's a conflict between v3/v4 installs. Or do you mean, v4 does not work for you out of the box?
L
I mean v4 (libbitcoin-system/master) does not work for me out of the box. libbitcoin-system works well. I can build it (after enabling nuget). but examples and test don't work because of #include <bitcoin/system.hpp>. I wanted to know if anyone has the same experience with visual studio and .sln files. I don't try with build scripts. I could check the build scripts later.
neillm13:40
Ah, ok, sorry, I'm not sure I'm able to help with that -- just not familiar enough at the moment.
evoskuil14:30
Build scripts don’t apply to VS.
It works for me.
L
@evoskuil With build scripts I mean the msvc/build files like build_all.bat. I am not using these scripts. my steps are: open 2017 sln file -> set libbitcoin-example as startup project -> build through visual studio. Can you please confirm it works?
L
@neillm @evoskuil I found out where the problem is coming from. The VS-Command Line shows me mysources\libbitcoinmyroot\builds\msvc\vs2017\libbitcoin-system-examples\..\..\..\..\..\libbitcoin-system\include. the example project looks inside libbitcoin-system for include, but my folder is libbitcoinmyroot. renaming the root to libbitcoin-system solves the problem :).
👍 2
evoskuil17:27
Yup

Friday, May 31, 2019

evoskuil01:39
The libbitcoin projects (by repo) are all siblings, so they expect a common arbitrary root, but must ref dependencies by name. The examples, etc. use the same approach, since they rely on the same .props exports, despite being in a common solution.