Archive of the libbitcoin Slack #general channel.
peer=my-host, but if not an option, lower outbound connections may helphead)% ./build4/core/bin/bx help provides no details about ec-to-witnessthecodefactory and the witness-address branch for system/explorer, rather than libbitcoin and master. Just having them checked out locally won't do it (using install.sh anyway)% echo 0279BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 | ./build4/core/bin/bx ec-to-witness
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
Matches the test vector from https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#examplesdata_chunkmaster?master is the current staging area for version4. It will be tagged as v4.0.0 when ready. I'd say to decide where you want to place the PR. Perhaps you want to add the code to the version3 branch if that's what you're using. We could forward port if neededlibsodium claims it has the hardware true random capability if it's available. Either way, I think point 3 is the most important in some sense, as if we provide something that people believe is true random when in fact, that can't be provided in a general configuration, it's a maintenance/support/security burden taken on for no concrete benefit.pseudo_random::fill eventually calls out to a Mersenne Twister algorithm, which is not cryptographically secure. https://en.m.wikipedia.org/wiki/Mersenne_Twisterlibsodium and perhaps boost, though not sure about the latter) may provide a way to obtain true random from a hardware device on the machine if it's available. If there's a way to utilize that in boost, we could simply change our code to use that path instead. I don't know if that's possible or not at the moment thoughrandom_device might be of interest. https://www.boost.org/doc/libs/1_46_0/doc/html/boost/random_device.html. I'm on mobile now but can dive deeper later.pseudo_random_fill just gets a std::uniform_int_distribution<uint16_t> distribution(0, max_uint8); uniform distribution, then passed it to the twister, which just gets seed from the clock, now.time_since_epoch().count(). Is this what you were referring to about passing to the OS for obtaining entropy? And is this method considered secure enough? (just trying to learn as much about this, as I also have to give this info to my team, so by no means do I mean this in a negative or criticizing light)random_device or boost_random. The only thing I can find is getting the clock time (like you’d mentioned above) and sending that into the Mersenne Twister. Am I missing something?std::mt19937 type twister, but that’s std::, not boost::.b2a0d576b828b537688b561f2cfa8dac3602d54c62bde619ad5331e6c235ee26
or explicitly demarshalling
2% echo xprv9s21ZrQH143K3t4UZrNgeA3w861fwjYLaGwmPtQyPMmzshV2owVpfBSd2Q7YsHZ9j6i6ddYjb5PLtUdMZn8LhvuCVhGcQntq5rn7JVMqnie | bx base58-decode | cut -c 93-156
b2a0d576b828b537688b561f2cfa8dac3602d54c62bde619ad5331e6c235ee26libbitcoin-systemversion3)install.sh installs all required dependencies and then all required libbitcoin repos, rather than the latter that you posted, which builds a single repo, perhaps with missing dependencies (not included on the configure line for example)/dev/random uses OS level entropy (sourced from hardware events). /dev/urandom is pseudo-random that is less random than /dev/random, but it provides quicker access to pseudo-random values. If you try to read data from /dev/urandom, you can read large quantities. If you try to read data from /dev/random, you will find that you are often blocking, waiting for the system to provide more entropy