Re: [bitcoin-dev] BIPable-idea: Consistent and better definition of the term 'address'

2019-10-17 Thread Marco Falke via bitcoin-dev
I also like the "bitcoin invoice address" term by Chris. Invoice is a
common term and easily translatable into other languages.

Marco
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] [bitcoin-core-dev] Bitcoin Core 0.18.0 released

2019-05-02 Thread Marco Falke via bitcoin-dev
Two addenda from me:

* Beginning with Bitcoin Core 0.18.0, Windows builds for 32-bit
Windows will no longer be provided. Please let us know if and why you
can not use the 64-bit build.
* There is an experimental Bitcoin Core snap package in the snap
store. There should be a "track" for the latest release and a track
for each major version branch that is not yet EOL. While the snap
package uses the signed release binaries, I am not aware of a way to
generate the hash of binaries in an installed snap that works on any
Linux distribution. (On some distributions, a call to `sha256sum
/var/lib/snapd/snap/bitcoin-core/current/{bin/*,snap/snapcraft.yaml}`
generates the hashes that you can then compare to the signed ones as
usual)

Marco
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] IsStandard

2019-05-02 Thread Marco Falke via bitcoin-dev
There is not a single document that describes what is standard and
what is not. Transaction relay policy (including minimum relay fees)
may change over time, across different implementations or different
versions of the same implementation.

Generally you can assume that commonly used scripts that are standard
today remain standard. To test if a script is standard and accepted by
current relay policy of a Bitcoin Core node, you can create a tx that
spends from it on mainnet or on testnet and see if it is accepted to
the mempool of your local node. Make sure to disable
-acceptnonstdtxn=0 on testnet.

Should the standardness-rules of a script type ever change, it will be
announced and discussed on this mailing list.

And of course, lightning transactions are standard as they otherwise
wouldn't propagate.

Best,
Marco

On Sun, Apr 28, 2019 at 9:06 PM Aymeric Vitte via bitcoin-dev
 wrote:
>
> Maybe trivial question but asking here because I can't find anything
> clear (or updated) about it: is somewhere explained in details what txs
> are considered standard and non standard today without having to read
> the core code?
>
> For example, modification of multisig 2 of 3:
>
> scriptSig:
> OP_0
> OP_PUSHDATA sign1
> OP_PUSHDATA sign2
> OP_2
> OP_PUSHDATA  OP_3 OP_CHECKMULTISIG
>
> scriptPubKey:
> OP_HASH160 hash160( OP_3
> OP_CHECKMULTISIG) OP_EQUAL
>
> Is this standard? Are lightning txs standards ? etc
>
>
> ___
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Removal of reject network messages from Bitcoin Core (BIP61)

2019-03-05 Thread Marco Falke via bitcoin-dev
Bitcoin Core may send "reject" messages as response to "tx", "block" or
"version" messages from a network peer when the message could not be accepted.

This feature is toggled by the `-enablebip61` command line option and has been
disabled by default since Bitcoin Core version 0.18.0 (not yet released as of
time of writing). Nodes on the network can not generally be trusted to send
valid ("reject") messages, so this should only ever be used when connected to a
trusted node. At this time, I am not aware of any software that requires this
feature, and I would like to remove if from Bitcoin Core to make the codebase
slimmer, easier to understand and maintain. Let us know if your application
relies on this feature and you can not use any of the recommended alternatives:

* Testing or debugging of implementations of the Bitcoin P2P network protocol
  should be done by inspecting the log messages that are produced by a recent
  version of Bitcoin Core. Bitcoin Core logs debug messages
  (`-debug=`) to a stream (`-printtoconsole`) or to a file
  (`-debuglogfile=`).

* Testing the validity of a block can be achieved by specific RPCs:
  - `submitblock`
  - `getblocktemplate` with `'mode'` set to `'proposal'` for blocks with
potentially invalid POW

* Testing the validity of a transaction can be achieved by specific RPCs:
  - `sendrawtransaction`
  - `testmempoolaccept`

* Wallets should not use the absence of "reject" messages to indicate a
  transaction has propagated the network, nor should wallets use "reject"
  messages to set transaction fees. Wallets should rather use fee estimation
  to determine transaction fees and set replace-by-fee if desired. Thus, they
  could wait until the transaction has confirmed (taking into account the fee
  target they set (compare the RPC `estimatesmartfee`)) or listen for the
  transaction announcement by other network peers to check for propagation.

I propose to remove "reject" messages from Bitcoin Core 0.19.0 unless there are
valid concerns about its removal.

Marco
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Contribution

2019-01-31 Thread Marco Falke via bitcoin-dev
This mailing list is for the development of the Bitcoin protocol (see
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev).
Code changes to Bitcoin Core can be discussed on
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-core-dev or
preferably be submitted to https://github.com/bitcoin/bitcoin/
directly.

-- Marco
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] v0.16.1 test_bitcoin fails on Deian 9

2018-07-14 Thread Marco Falke via bitcoin-dev
Hi, and thanks for the detailed issue report.

This was a known issue in test code that is only compiled when
debugging. It will be fixed in the upcoming 0.16.2 and 0.17.0
releases.

If you see any further issues, note that we track technical issues
related to the Bitcoin Core code base on our issue tracker:
https://github.com/bitcoin/bitcoin/issues/new

Marco

On Sat, Jul 14, 2018 at 9:48 AM, Shigeya Suzuki via bitcoin-dev
 wrote:
> Hi,
>
> I observed strange result when running src/test/test_bitcoin on Debian 9.
>
> I tested with the following platforms:
>
> 1) OS X High Sierra 10.13.6 with
>./configiure --enable-debug
>
> 2) Debian 9 (with latest packages) with
>./configure --enable-debug --disable-wallet --without-gui
>
> 3) Ubuntu 16.04 with:
>./configure --with-debug --disable-wallet
>
> strangely,  configuration 2 cause core dump but others not:
>
> Running 264 test cases...
> unknown location(0): fatal error: in 
> "validation_block_tests/processnewblock_signals_ordering": memory access 
> violation at address: 0x: no mapping at fault address
> zsh: segmentation fault  ./test_bitcoin
>
> I guess it is due to toolchain differences.
>
> Any thoughts?
>
> Shigeya Suzuki
> ___
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Amend the BIP 123 process to include buried deployments

2018-02-18 Thread Marco Falke via bitcoin-dev
> They also do not require software coordination. Therefore, why should there be
> BIPs at all? Seems to me that we should instead add these documents to
> https://github.com/bitcoin-core/docs


Consensus is not trivial. I think documentation is important, even if
it seems simple to some.
Personally, I don't care too much where to place the documentation,
but the BIPs repo seems a good place, since it also hosts other
informational documents.

To prevent "two BIPs for every protocol change", related buried
deployments could be bundled. E.g. the ISM BIP 90 change.



On Wed, Feb 14, 2018 at 6:57 PM, Eric Voskuil  wrote:
> On 02/14/2018 02:01 PM, Marco Falke via bitcoin-dev wrote:
>> I define a buried deployment as a consensus rule change that affects
>> validity of blocks that are buried by a sufficiently large number of
>> blocks in the current valid most-work chain,
>
> Sufficient for what, specifically?


Sufficiently large to prevent potential bike-shedding. The expected
number of blocks in two weeks could be considered a lower bound. Then
multiply that by 10 or 20.

>
>> but the current block (and all its parents) remain valid.
>
> Remain valid in the case where the depth assumption is "sufficient" to
> ensure that a chain split is not possible?
>
> If this was true (which it is not), it would imply that there is no
> reason to validate any block deeper than the most recent 25,000.
> Presumably this means that people may continuously rely on some
> authority (like Bitcoin Core?) to determine the checkpoint for tip-25,000.
>


Note that a checkpoint *freezes* the chain completely at a given
height. Buried deployments are *not* checkpoints.

Also note that buried deployments only make sense after a protocol
upgrade has happened (i.e. a soft fork or hard fork). If a miner has
the resources to cause a chain split, they could trivially do that
even in the complete absence of buried deployments. Buried deployments
are *not* a solution to 50% attacks.


>> BIP 123 suggests that BIPs in the consensus layer should be assigned a
>> label "soft fork" or "hard fork". However, I think the differentiation
>> into soft fork or hard fork should not be made for BIPs that document
>> buried deployments. In contrast to soft forks and hard forks, buried
>> deployments do not require community and miner coordination for a safe
>> deployment.
>
> They can only avoid this requirement based on the assumption that the
> hard fork cannot result in a chain split. This is not the case.
>
>> For a chain fork to happen due to a buried deployment, a massive chain
>> reorganization must be produced off of a block in the very past.
>
> In other words a "buried deployment" is a hard fork that is not likely
> to cause a chain split. This is a subjective subcategory of hard fork,
> not an independent category - unless maybe you can show that there is
> the 25,000 blocks number is an objective threshold.


Please note that a buried deployment can very well be a soft fork. I
think this makes it even clearer, that such a label makes no sense for
buried deployments.


>> In the extremely unlikely event of such a large chain reorganization,
>> Bitcoin's general security assumptions would be violated regardless of
>> the presence of a buried deployment.
>
> This is untrue. The "security assumptions" of Bitcoin do not preclude
> deep reorganizations.
> e
>
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


[bitcoin-dev] Amend the BIP 123 process to include buried deployments

2018-02-14 Thread Marco Falke via bitcoin-dev
I define a buried deployment as a consensus rule change that affects
validity of blocks that are buried by a sufficiently large number of
blocks in the current valid most-work chain, but the current block
(and all its parents) remain valid.

BIP 123 suggests that BIPs in the consensus layer should be assigned a
label "soft fork" or "hard fork". However, I think the differentiation
into soft fork or hard fork should not be made for BIPs that document
buried deployments. In contrast to soft forks and hard forks, buried
deployments do not require community and miner coordination for a safe
deployment.

For a chain fork to happen due to a buried deployment, a massive chain
reorganization must be produced off of a block in the very past. In
the extremely unlikely event of such a large chain reorganization,
Bitcoin's general security assumptions would be violated regardless of
the presence of a buried deployment.
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Python test suite failures (was Re: Planned Obsolescence)

2016-12-21 Thread Marco Falke via bitcoin-dev
> In 0.13.1 the error is
>
>
> Running test/bitcoin-util-test.py...
> Traceback (most recent call last):
>   File "./test/bitcoin-util-test.py", line 12, in 
> "bitcoin-util-test.json",buildenv)
>   File "/builddir/build/BUILD/bitcoin-0.13.1/src/test/bctest.py", line 54,
> in bctester
> bctest(testDir, testObj, buildenv.exeext)
>   File "/builddir/build/BUILD/bitcoin-0.13.1/src/test/bctest.py", line 26,
> in bctest
> outputData = open(testDir + "/" + outputFn).read()
> FileNotFoundError: [Errno 2] No such file or directory:
> './test/data/blanktx.json'


This was a known problem on the *master* branch. If you still
encounter any issues on the current 0.13.2 release candidate, please
let us know in https://github.com/bitcoin/bitcoin/issues/9394. (Make
sure to include the version of centos you are running)
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] BIP 2 revival and rework

2016-10-15 Thread Marco Falke via bitcoin-dev
On Sat, Oct 15, 2016 at 4:21 PM, Tom Zander via bitcoin-dev
 wrote:
>> > My suggestion (sorry for not explaining it better) was that for BIPS to
>> > be a public domain (aka CC0) and a CC-BY option and nothing else.
>>
>> Indeed, we agree that BIPs should be licensed as permissive as
>> possible. Still, I wonder why you chose otherwise with BIP 134.
>> (Currently OPL and CC-BY-SA)
>
> OPL was the only allowed option apart from CC0.

I think you are misunderstanding what is allowed and what is required...

BIP1: "Each BIP must either be explicitly labelled as placed in the
public domain (see this BIP as an example) or licensed under the Open
Publication License"

So BIP1 *requires* PD or OPL but does not forbid other licenses. For
example, you are free to multi license OPL (and additionally: BSD,
MIT, CC0, ...)

BIP2: "Each new BIP must identify at least one acceptable license in
its preamble."

So BIP2 *requires* an acceptable license but does not forbid other
choices. For example, you are free to choose: BSD (and additionally:
PD, CC-BY-SA, WTFPL, BEER, ...)


>> BIP 2 does not forbid you to release your work under PD in
>> legislations where this is possible
>
> It does, actually.

Huh, I can't find it in the text I read. The text mentions "not
acceptable", but I don't read that as "forbidden".

>
>> One
>> of the goals of BIP 2 is to no longer allow PD as the only copyright
>> option.
>
> That's odd as PD was never the only copyright option.

Right. Though, up to now the majority of the BIP authors chose PD as
the only option.

Marco
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] BIP 2 revival and rework

2016-10-15 Thread Marco Falke via bitcoin-dev
On Sat, Oct 15, 2016 at 1:00 PM, Tom Zander via bitcoin-dev
 wrote:
> My suggestion (sorry for not explaining it better) was that for BIPS to be a
> public domain (aka CC0) and a CC-BY option and nothing else.

Indeed, we agree that BIPs should be licensed as permissive as
possible. Still, I wonder why you chose otherwise with BIP 134.
(Currently OPL and CC-BY-SA)

> I like you agree with that part, but I see you added two licenses.
> Do you have a good reason to add MIT/BSD to that list? Otherwise I think we
> agree.

Licenses that only require attribution are generally compatible with
each other. I don't think we should pick one and only promote/endorse
this one. Let's just leave the decision to the BIP author.


> Well, it has this sentence;
>
>> This BIP is dual-licensed under the Open Publication License and
>> BSD 2-clause license.
>
> Which is a bit odd in light of the initial email from Luke that suggested we
> drop the Open Publication License and we use the CC ones instead in addition
> to the public domain one.

I am pretty sure this is required to host the current text of BIP 2 in
the repo, as currently BIP 1 still applies and still requires for all
BIPs either OPL or PD, which is one of the reasons I think we should
move forward with BIP 2 or amending BIP 1.


> Marco:
>> looks good and addressed the feedback which was
>> accumulated last year. If there are no objections I'd suggest to move
>> forward with BIP 2 in the next couple of days/weeks.
>
> Thats odd, you just stated you like the public domain (aka CC0) license, yet
> you encourage the BIP2 that states we can no longer use public domain for
> BIPs... Did you read it?
> It says;
>  «Public domain is not universally recognised as a legitimate action, thus
>   it is inadvisable.» [1]

BIP 2 does not forbid you to release your work under PD in
legislations where this is possible. None of the licenses mentioned in
BIP 2 is exclusive, so you can choose as many options as you like. One
of the goals of BIP 2 is to no longer allow PD as the only copyright
option.


>
> Also;
> This list has not seen a lot of traffic, if you want to make sure people keep
> using the BIP process, I think you need to reach out to the rest of the
> community and make sure this has been heard and discussed.
> Moving forward the way it is now will likely deminish the importance of the
> BIP process.
>
> I strongly suggest people make very clear any and all changes that are
> proposed and defend each of them with reasons why you want to change things.
>
>
> 1) if you write as a rationale "In some jurisdictions, public domain is not
> recognised as a legitimate legal action" then you can at least name those
> jurisdictions and explain how they *do* support things like GPL. Burden of
> proof is on the man who wants to change things.
> It looks fishy when lawyers disagree. See the CC wikipedia page;
>  "public domain: cc0 Freeing content globally without restrictions"

Luke is the BIP champion of BIP 2, so please cc him if you have
suggestions on how to improve the process of gathering community
consensus.

Marco
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] BIP 2 revival and rework

2016-10-15 Thread Marco Falke via bitcoin-dev
On Sat, Sep 24, 2016 at 11:41 AM, Tom via bitcoin-dev
 wrote:
> I'd suggest saying that "Share alike" is required and "Attribution" is
> optional.

Please note there is no CC license that requires SA and at the same
time has BY as an option.

Generally, I think CC0 is best suited as license for BIPs. If authors
are scared that they won't get proper attribution, they can choose
MIT/BSD or CC-BY. Other than that I don't think that more restrictive
licenses are suitable for BIPs. The BIP repo seems like the wrong
place to promote Open Access (e.g. by choosing a CC-BY-SA license).
BIP 2 allows such licenses, but does not recommend them, which is
fine.

I think that BIP 2 in its current form (
https://github.com/bitcoin/bips/blob/master/bip-0002.mediawiki
@6e47447b ) looks good and addressed the feedback which was
accumulated last year. If there are no objections I'd suggest to move
forward with BIP 2 in the next couple of days/weeks.

Marco
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] consensus rule change for TX fee safety

2016-03-03 Thread Marco Falke via bitcoin-dev
2016-03-03 16:28 GMT+01:00 Peter Todd via bitcoin-dev
:
> Bitcoin Core already implements this safety limit with the "absurd fee"
> limit of 1 * the minimum relay fee. This limit is active in both the
> wallet and the sendrawtransaction RPC call. Additionally for the wallet
> there is a user configurable -maxtxfee option to limit fees set by the
> wallet which currently defaults to 0.1 BTC.


It is planned for Bitcoin Core 0.13 to use -maxtxfee for both, the
wallet and the RPC interface (sendrawtransaction). (c.f.
https://github.com/bitcoin/bitcoin/pull/7084)

In regard to the issue, I agree with Jonas. Such large transaction
fees were historically caused by no or insufficient warnings from the
wallet software. And it's the responsibility of the operators to make
the wallet user friendly.

Apart from that, there are legit use cases where one would want to
"pay" a large transaction fee: It may be convenient for the miner to
just collect the fees instead of sending back the change on their own
transactions. Of course making sure to mine the high-fee tx themself.
Moreover, it could increase privacy if another party decides to "wash"
their bitcoins by letting the miner claim the "fee" and then have the
miner send back a fraction of the fee to a fresh address. Though, this
probably works best if a lot of participants are doing this.

Marco
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Bitcoin Core 0.12.0 release candidate 1 available

2016-01-25 Thread Marco Falke via bitcoin-dev
All of this is already implemented in the bitcoind and bitcoin gui.

The theoretic minimum for the prune target would be 0 (just the header
of the current best block) as Bitcoin Core already stores the
chainstate (about 2 GiB) regardless of what you set for -prune=.

In practice, the minimum is 510, so reorgs and small rescans (may not
be implemented in 0.12) are still possible.

The clients won't let you set it below that target:
"Prune configured below the minimum of 550 MiB. Please use a higher number."

Also, keep in mind Bitcoin Core comes with a help message explaining
-prune and other command line options

--Marco

2016-01-25 13:27 GMT+01:00 xor--- via bitcoin-dev
:
> On Monday, January 25, 2016 01:03:17 PM Wladimir J. van der Laan wrote:
>> > If yes, I would highly recommend advertising it in the new release notes -
>> > as said, the disk space reduction is a big deal.
>>
>> Good idea, has been added by Marco Falke in commit fa31133,
>
> Thanks. The RC2 changelog now says:
>
>> To enable block pruning set prune= on the command line or in
>> bitcoin.conf, where N is the number of MiB to allot for raw block & undo
>> data.
>
> From having read the Bitcoin whitepaper quite a few months ago ago, I have the
> very very basic understanding that pruning is meant to:
> - delete old transaction data which merely "moves coins around"
> - instead only store the "origin" (= block where coins were mined) and
> "current location" of the coins, i.e. the unspent transactions. Notably, I
> understood it as "this is as secure as storing everything, since we know where
> the coins were created, and where they are".
>
> So from that point of view, I would assume that there is a "natural" amount of
> megabytes which a fully pruned blockchain consists of: It would be defined by
> the final amount of unspent coins.
> I thereby am confused why it is possible to configure a number of megabytes
> "to allot for raw block & undo data". I would rather expect pruning just to be
> a boolean on/off flag, and the number of megabytes to be an automatically
> computed result from the natural size of the dataset.
> And especially, I fear that I could set N too low, and as a result, it would
> delete "too much". I mean could this result in even security relevant
> transaction data being deleted?
>
> Thus, it would be nice if you could yet once more edit the release notes to:
> - explain why a N must be given
> - what a "safe" value of N is. I.e. how large must N be at least to not delete
> security-relevant stuff?
> - maybe mention if there is a "auto" setting for N to ensure that it choses a
> safe value on its own?
>
> Sorry if my descriptions are from a layman's point of view. I intentionally
> did *not* re-read the Bitcoin whitepaper to have a better understanding:
> I think having a layman's understanding is a good usability test for such
> stuff.
> ___
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] An implementation of BIP102 as a softfork.

2015-12-30 Thread Marco Falke via bitcoin-dev
This is an interesting approach but I don't see how this is a soft
fork. (Just because something is not a hard fork, doesn't make it a
soft fork by definition)
Softforks don't require any nodes to upgrade. [1]
Nonetheless, as I understand your approach, it requires nodes to
upgrade. Otherwise they are missing all transactions but the coinbase
transactions. Thus, they cannot update their utxoset and are easily
susceptible to double spends...

Am I missing something obvious?

-- Marco


[1] https://en.bitcoin.it/wiki/Softfork#Implications
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev