[bitcoin-dev] Bitcoin governance

2015-07-01 Thread NxtChg
(sorry for the long post, I tried)

I've been thinking about how we could build an effective Bitcoin governance, 
but couldn't come up with anything remotely plausible.

It seems we might go a different way, though, with Core and XT continue 
co-existing in parallel, mostly in a compatible state, out of the need that 
there can be only one.

Both having the same technical protocol, but different people, structure, 
processes and political standing; serving as a kind of two-party system and 
keeping each other in check.

Their respective power will be determined by the number of Core vs XT nodes 
running and people/businesses on board. They will have to negotiate any 
significant change at the risk of yet another full fork.

And occasionally the full forks will still happen and the minority will have to 
concede and change their protocol to match the winning side.

Can there be any other way? Can you really control a decentralized system with 
a centralized governance, like Core Devs or TBF?



In this view, what's happening is a step _towards_ decentralization, not away 
from it. It proves that Bitcoin is indeed a decentralized system and that 
minority cannot impose its will.

For the sides to agree now would actually be a bad thing, because that would 
mean kicking the governance problem down the road.

And we _need_ to go through this painful split at least once. The block size 
issue is perfect: controversial enough to push the split, but not controversial 
enough so one side couldn't win.



If this is where we're heading then both sides should probably start thinking 
of themselves as opposition parties, instead of whatever they think of 
themselves now.

People and businesses ultimately decide and they need a way to cast a Yes/No 
vote on proposed changes. Hence the two-party system.

If the split in power is, say, 60/40 and the leading party introduces an 
unpopular change, it can quickly lose its advantage.

We already have the democratic party on the left with Gavin and Mike 
representing the wish of the majority and the conservative party on the 
right, who would prefer things to stay the way they are.



Finally, I propose to improve the voting mechanism of Bitcoin to serve this new 
reality better.

Using the upcoming fork as an opportunity, we could add something like 8-byte 
votes into blocks:

* first 4 bytes: fork/party ID, like 'CORE' or 'XT'
* second 4 bytes: proposition number

(or at least add the ID somewhere so the parties wouldn't have to negotiate 
block version numbers). 


Miners are in the business of mining coins, so they are good sensors of where 
the economic majority will be.

We will have a representative democracy, with miners serving as 'hubs', 
collecting all the noise and chatter and casting it into a vote.

This is not perfect, but nothing ever is.

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


Re: [bitcoin-dev] Bitcoin governance

2015-07-01 Thread Milly Bitcoin

It is a common misconception that the core devs govern Bitcoin;

They set standards rather than govern.  It is an important standard, but 
it is a voluntary standard.  How important that standard in terms of 
defining the consensus rules is subject to speculation and the amount of 
influence depends on the specific circumstances. Maybe some wording can 
be changed to reflect that it is a voluntary standard.


Russ

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


[bitcoin-dev] Bitcoin core 0.11.0 release candidate 3 available

2015-07-01 Thread Wladimir J. van der Laan
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

Hello,

I've just uploaded Bitcoin Core 0.11.0rc3 executables to:

https://bitcoin.org/bin/bitcoin-core-0.11.0/test/

The source code can be found in the source tarball or in git under the tag 
'v0.11.0rc3'

Preliminary release notes can be found here:

https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md

Changes since rc2:
+- #6319 `3f8fcc9` doc: update mailing list address
+- #6303 `b711599` gitian: add a gitian-win-signer descriptor
+- #6246 `8ea6d37` Fix build on FreeBSD
+- #6282 `daf956b` fix crash on shutdown when e.g. changing -txindex and abort 
action
+- #6233 `a587606` Advance pindexLastCommonBlock for blocks in chainActive
+- #6333 `41bbc85` Hardcoded seeds update June 2015
+- #6354 `bdf0d94` Gitian windows signing normalization

Thanks to everyone that participated in development, translation or in the 
gitian build process,

Wladimir
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQEcBAEBCgAGBQJVk9IfAAoJEHSBCwEjRsmmm84H/AoBHiKKEIuT/86+VSs+1ICY
sUTXF5Q0qeAELSKO2auq1wOAA62UuhUd46S+lAWe3cL3G2UJzFt0WWXq2fOUjKur
27HTutmY9Oy/7fGLGT0CNCuXJ8bKGoUzIx4nhNEMvaucangaKpHtSCPAzqkEY4mW
cCuAh3pHR3xgfA5EYfBxq2jGUEC5iUzmsvEL4LXoBKt60f9AI/H08IFSa9uyJZAS
f5HyVtYF5/OZxD1GUyAfSfeSteBRBkoqRNww0LE6b0PQE9ZHLZzsUxngsOkPKMQU
OJGgDMkgO/7c6gfpHCBLdWkSQEJuRfH/EeVnM5poOjwrGiWewc0O/+svT2WdfRo=
=rESk
-END PGP SIGNATURE-
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Bitcoin governance

2015-07-01 Thread Justus Ranvier
On 07/01/2015 03:54 AM, Jeffrey Paul wrote:
 could we please limit ourselves to posting about the research and development 
 of Bitcoin Core?

If that's the purpose of this list, then it is misleadingly named.

If development of Bitcoin Core, the application, is to be considered
independent from development of Bitcoin, the protocol, then Bitcoin Core
development needs its own list.



0xEAD9E623.asc
Description: application/pgp-keys


signature.asc
Description: OpenPGP digital signature
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] RFC: HD Bitmessage address derivation based on BIP-43

2015-07-01 Thread Kristov Atlas
Hi Justus,

What are the potential applications for this BIP?

-Kr
On Jun 30, 2015 1:53 PM, Justus Ranvier justus.ranv...@monetas.net
wrote:

 Monetas has developed a Bitmessage address derivation method from an
 HD seed based on BIP-43.


 https://github.com/monetas/bips/blob/bitmessage/bip-bm01.mediawiki


 We're proposing this as a BIP per the BIP-43 recommendation in order
 to reserve a purpose code.
 ___
 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] Reaching consensus on policy to continually increase block size limit as hardware improves, and a few other critical issues

2015-07-01 Thread Michael Naber
This is great: Adam agrees that we should scale the block size limit
discretionarily upward within the limits of technology, and continually so
as hardware improves. Peter and others: What stands in the way of broader
consensus on this?


We also agree on a lot of other important things:
-- block size is not a free variable
-- there are trade-offs between node requirements and block size
-- those trade-offs have impacts on decentralization
-- it is important to keep decentralization strong
-- computing technology is currently not easily capable of running a global
transaction network where every transaction is broadcast to every node
-- we may need some solution (perhaps lightning / hub and spoke / other
things) that can help with this

We likely also agree that:
-- whatever that solution may be, we want bitcoin to be the hub / core of
it
-- this hub needs to exhibit the characteristic of globally aware global
consensus, where every node knows about (awareness) and agrees on
(consensus) every transaction
-- Critically, the Bitcoin Core Goal: the goal of Bitcoin core is to build
the best globally aware globally consensus network, recognizing there are
complex tradeoffs in doing this.


There are a few important things we still don't agree on though. Our
disagreement on these things is causing us to have trouble making progress
meeting the goal of Bitcoin Core. It is critical we address the following
points of disagreement. Please help get agreement on these issues below by
sharing your thoughts:

1) Some believe that fees and therefore hash-rate will be high by limiting
capacity, and that we need to limit capacity to have a healthy fee market.

Think of the airplane analogy: If some day technology exists to ship a
hundred million people (transactions) on a plane (block) then do you really
want to fight to outlaw those planes? Airlines are regulated so they have
to pay to screen each passenger to a minimum standard, so even if the plane
has unlimited capacity, they still have to pay to meet minimum security for
each passenger.

Just like we can set the block limit, so can we regulate the airline
security requirements and set a minimum fee size for the sake of security.
If technology allows running 100,000 transactions per second in 25 years,
and we set the minimum fee size to one penny, then each block is worth a
minimum of $600,000. Miners should be ok with that and so should everyone
else.


2) Some believe that it is better for (a) network reliability and (b)
validation of transaction integrity, to have every user run a full node
in order to use Bitcoin Core.

I don't agree with this. I'll break this into two pieces of network
reliability and transaction integrity.

Network Reliability


Imagine you're setting up an email server for a big company. You decide to
set up a main server, and two fail-over servers. Somebody says that they're
really concerned about reliability and asks you to add another couple
fail-over servers. So you agree. But at some point there's limited benefit
to adding more servers: and there's real cost -- all those servers need to
keep in sync with one another, and they need to be maintained, etc. And
there's limited return: how likely is it really that all those servers are
going to go down?

Bitcoin is obviously different from corporate email servers. In one sense,
you've got miners and volunteer nodes rather than centrally managed ones,
so nodes are much more likely to go down. But at the end of the day, is our
up-time really going to be that much better when you have a million nodes
versus a few thousand?

Cloud storage copies your data a half dozen times to a few different data
centers. But they don't copy it a half a million times. At some point the
added redundancy doesn't matter for reliability. We just don't need
millions of nodes to participate in a broadcast network to ensure network
reliability.

Transaction Integrity

Think of open source software: you trust it because you know it can be
audited easily, but you probably don't take the time to audit yourself
every piece of open source software you use. And so it is with
Bitcoin: People need to be able to easily validate the blockchain, but they
don't need to be able to validate it every time they use it, and they
certainly don't need to validate it when using Bitcoin on their Apple
watches.

If I can lease a server in a data center for a few hours at fifty cents an
hour to validate the block chain, then the total cost for me to
independently validate the blockchain is just a couple dollars. Compare
that to my cost to independently validate other parts of the system -- like
the source code! Where's the real cost here?

If the goal of decentralization is to ensure transaction integrity and
network reliability, then we just don't need lots of nodes or every user
running a node to meet that goal. If the goal of decentralization is
something else: what is it?

3) Some believe that we should make Bitcoin Core to run as a 

[bitcoin-dev] Defining a min spec

2015-07-01 Thread Jean-Paul Kogelman
Hi folks,

I’m a game developer. I write time critical code for a living and have to deal 
with memory, CPU, GPU and I/O budgets on a daily basis. These budgets are based 
on what we call a minimum specification (of hardware); min spec for short. In 
most cases the min spec is based on entry model machines that are available 
during launch, and will give the user an enjoyable experience when playing our 
games. Obviously, we can turn on a number of bells and whistles for people with 
faster machines, but that’s not the point of this mail.

The point is, can we define a min spec for Bitcoin Core? The number one reason 
for this is: if you know how your changes affect your available budgets, then 
the risk of breaking something due to capacity problems is reduced to 
practically zero.

One way of doing so is to work backwards from what we have right now: Block 
size (network / disk I/O), SigOps/block (CPU), UTXO size (memory), etc. Then 
there’s Pieter’s analysis of network bottlenecks and how it affects orphan 
rates that could be used to set some form of cap on what transfer time + 
verification time should be to keep the orphan rate at an acceptable level.

So taking all of the above (and more) into account, what configuration would be 
the bare minimum to comfortably run Bitcoin Core at maximum load and can it be 
reasonably expected to still be out there in the field running Bitcoin Core? 
Also, can the parameters that were used to determine this min spec be codified 
in some way so that they can later be used if Bitcoin Core is optimized (or 
extended with new functionality) and see how it affects the min spec? 
Basically, with any reasonably big change, one of the first questions could be: 
“How does this change affect min spec?

For example, currently OpenSSL is used to verify the signatures in the 
transactions. The new secp256k1 implementation is several times faster than 
(depending on CPU architecture, I’m sure) OpenSSL’s implementation. So it would 
result in faster verification time. This can then result in the following 
things; either network I/O and CPU requirements are adjusted downward in the 
min spec (you can run the new Bitcoin Core on a cheaper configuration), or 
other parameters can be adjusted upwards (number of SigOps / transaction, block 
size?), through proper rollout obviously. Since we know how min spec is 
affected by these changes, they should be non-controversial by default. Nobody 
running min spec is going to be affected by it, etc.

Every change that has a positive effect on min spec (do more on the same 
hardware) basically pushes the need to start following any of the curve laws 
(Nielsen, Moore) forward. No need for miners / node operators to upgrade.

Once we hit what we call SOL (Speed Of Light, the fastest something can go on a 
specific platform) it’s time to start looking at periodically adjusting min 
spec upwards, or by that time maybe it’s possible to use conservative plots of 
the curve laws as a basis.

Lastly, a benchmark test could be developed that can tell everyone running 
Bitcoin Core how their setup compares to the min spec and how long they can 
expect to run on this setup.

What do you guys think?


jp


signature.asc
Description: Message signed with OpenPGP using GPGMail
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] REQ BIP # / Discuss - Sweep incoming unconfirmed transactions with a bounty.

2015-07-01 Thread Matt Whitlock
PR#1647 only addresses miner policy, though, right? I believe the BIP is 
addressing the user-facing side of this functionality. CPFP mining policy does 
very little good if wallets don't offer any way for users to goose up incoming 
transactions.


On Wednesday, 1 July 2015, at 9:52 pm, Mark Friedenbach wrote:
 This is called child pays for parent and there is a three year old pull
 request implementing it:
 
 https://github.com/bitcoin/bitcoin/pull/1647
 
 The points regarding sweep transaction UI is out of scope for a BIP I'm
 afraid. I suggest talking with wallet authors, and if agreement can be
 found writing a pull request.
 On Jul 1, 2015 9:44 PM, Dan Bryant dkbry...@gmail.com wrote:
 
  This is a process BIP request to add functionality to the Bitcoin-Core
  reference implementation.  If accepted, this could also add
  flexibility into any future fee schedules.
 
  https://github.com/d4n13/bips/blob/master/bip-00nn.mediawiki
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] REQ BIP # / Discuss - Sweep incoming unconfirmed transactions with a bounty.

2015-07-01 Thread Mark Friedenbach
This is called child pays for parent and there is a three year old pull
request implementing it:

https://github.com/bitcoin/bitcoin/pull/1647

The points regarding sweep transaction UI is out of scope for a BIP I'm
afraid. I suggest talking with wallet authors, and if agreement can be
found writing a pull request.
On Jul 1, 2015 9:44 PM, Dan Bryant dkbry...@gmail.com wrote:

 This is a process BIP request to add functionality to the Bitcoin-Core
 reference implementation.  If accepted, this could also add
 flexibility into any future fee schedules.

 https://github.com/d4n13/bips/blob/master/bip-00nn.mediawiki

 Note, left the formatting in, since mediawiki is a fairly light markup.
 ==
 pre
   BIP: nn
   Title: Sweep unconfirmed transactions by including their outputs in
 high fee transactions
   Author: Dan Bryant dkbry...@gmail.com
   Status: Draft
   Type: Process
   Created: 2015-07-01
 /pre

 ==Abstract==

 This BIP describes an enhancement to the reference client that
 addresses the need incentive inclusion of unconfirmed transactions.
 This method will create new high fee (or bounty) transactions that
 spend the desired unconfirmed transactions.  To claim the high fee
 (bounty) transactions, miners will need to include the desired
 unconfirmed transactions.

 ==Motivation==

 There are times when an individual receives a payment from someone
 that is in a poorly crafted transaction.  This transaction may include
 no fees, or insufficient fees to be included by many miners.  The
 recipient would be willing to pay a nominal transaction fee to have
 the payment transaction swept into the next block, but has no simple
 way to craft this incentive.

 This BIP could be highly desirable for merchants who may have little
 control over the type of wallets their customers use.  A merchant will
 want to ensure that all POS transactions to their hot wallet be given
 a high probability of inclusion in the next block.  This BIP would
 allow the merchant to sweep all their POS transactions currently in
 the mempool into one high fee sweep, thus greatly increasing the
 chance that they are in the next block.

 Although many wallets have the ability to tailor the transaction fees
 of payments that are sent, this BIP is unique in the sense that it
 allows people to offer a bounty for transactions that are incoming.

 ==Specification==

 This BIP would have two implementations; an automatic sweep of
 incoming unconfirmed transaction setting, and a manual sweep of
 unconfirmed transaction setting.  Both would have the ability to set
 the fee amount the user would like to pay for the sweep.

 Automatic sweep of incoming unconfirmed transactions

 An automatic sweep configuration may be ideal for merchants who want
 to ensure that their incoming transactions are not skipped over by
 miners.  An automatic sweep setting would consist of four fields,
 tt'''sweep_fee'''/tt, tt'''skipped_count'''/tt, and
 tt'''btc_threshold'''/tt

 Currently, the standard transaction fee is 0.0001 BTC, a generous
 sweep bounty would be 0.001 BTC.  Skipped-count will control the age
 of unconfirmed transactions to include in the sweep.  If skipped-count
 is set to three, then any incoming transaction that remains
 unconfirmed for 3 blocks would trigger a sweep.  A skipped-count of 0
 would trigger a sweep whenever any transaction is skipped, or if it
 reaches an age of 10 minutes, regardless of how long the current block
 is taking.

 As a safeguard to paying a bounty for small dust transactions, a
 minimum btc-threshold would be required for any automatic
 configuration.  A good starting threshold would be 0.10 BTC.  These
 automatic settings would allow a wallet implementing this BIP to
 automatically perform a sweep of unconfirmed transactions whenever
 more than 0.10 BTC of incoming transactions were detected in the
 mempool.  Furthermore, no more than one automatic sweep would be
 performed in any 10 minute window.

 Whenever a sweep is triggered, all incoming unconfirmed transactions
 should be swept, not simply the ones that triggered the sweep.  These
 would include new transactions as well as dust transactions.  Each
 sweep transaction would go to a new wallet address since recycling
 wallet addresses is poor practice.

 Manual sweep of incoming unconfirmed transactions

 A manual sweep of incoming unconfirmed transactions would be a special
 type of Send in the current reference implementation.  A manual
 sweep would auto-fill a send transaction with all currently
 unconfirmed incoming transactions in the mempool.  The fee field would
 be completely settable by the user and would auto-fill with the
 suggestions of 0.001 BTC

 A manual sweep would also be available as a context option when
 selecting any unconfirmed transaction.

 ==Compatibility==

 Wallet software that does not support this BIP will continue to
 operate without modification.

 ==Examples==

 pre
  //unconf_tx =
 

[bitcoin-dev] REQ BIP # / Discuss - Sweep incoming unconfirmed transactions with a bounty.

2015-07-01 Thread Dan Bryant
This is a process BIP request to add functionality to the Bitcoin-Core
reference implementation.  If accepted, this could also add
flexibility into any future fee schedules.

https://github.com/d4n13/bips/blob/master/bip-00nn.mediawiki

Note, left the formatting in, since mediawiki is a fairly light markup.
==
pre
  BIP: nn
  Title: Sweep unconfirmed transactions by including their outputs in
high fee transactions
  Author: Dan Bryant dkbry...@gmail.com
  Status: Draft
  Type: Process
  Created: 2015-07-01
/pre

==Abstract==

This BIP describes an enhancement to the reference client that
addresses the need incentive inclusion of unconfirmed transactions.
This method will create new high fee (or bounty) transactions that
spend the desired unconfirmed transactions.  To claim the high fee
(bounty) transactions, miners will need to include the desired
unconfirmed transactions.

==Motivation==

There are times when an individual receives a payment from someone
that is in a poorly crafted transaction.  This transaction may include
no fees, or insufficient fees to be included by many miners.  The
recipient would be willing to pay a nominal transaction fee to have
the payment transaction swept into the next block, but has no simple
way to craft this incentive.

This BIP could be highly desirable for merchants who may have little
control over the type of wallets their customers use.  A merchant will
want to ensure that all POS transactions to their hot wallet be given
a high probability of inclusion in the next block.  This BIP would
allow the merchant to sweep all their POS transactions currently in
the mempool into one high fee sweep, thus greatly increasing the
chance that they are in the next block.

Although many wallets have the ability to tailor the transaction fees
of payments that are sent, this BIP is unique in the sense that it
allows people to offer a bounty for transactions that are incoming.

==Specification==

This BIP would have two implementations; an automatic sweep of
incoming unconfirmed transaction setting, and a manual sweep of
unconfirmed transaction setting.  Both would have the ability to set
the fee amount the user would like to pay for the sweep.

Automatic sweep of incoming unconfirmed transactions

An automatic sweep configuration may be ideal for merchants who want
to ensure that their incoming transactions are not skipped over by
miners.  An automatic sweep setting would consist of four fields,
tt'''sweep_fee'''/tt, tt'''skipped_count'''/tt, and
tt'''btc_threshold'''/tt

Currently, the standard transaction fee is 0.0001 BTC, a generous
sweep bounty would be 0.001 BTC.  Skipped-count will control the age
of unconfirmed transactions to include in the sweep.  If skipped-count
is set to three, then any incoming transaction that remains
unconfirmed for 3 blocks would trigger a sweep.  A skipped-count of 0
would trigger a sweep whenever any transaction is skipped, or if it
reaches an age of 10 minutes, regardless of how long the current block
is taking.

As a safeguard to paying a bounty for small dust transactions, a
minimum btc-threshold would be required for any automatic
configuration.  A good starting threshold would be 0.10 BTC.  These
automatic settings would allow a wallet implementing this BIP to
automatically perform a sweep of unconfirmed transactions whenever
more than 0.10 BTC of incoming transactions were detected in the
mempool.  Furthermore, no more than one automatic sweep would be
performed in any 10 minute window.

Whenever a sweep is triggered, all incoming unconfirmed transactions
should be swept, not simply the ones that triggered the sweep.  These
would include new transactions as well as dust transactions.  Each
sweep transaction would go to a new wallet address since recycling
wallet addresses is poor practice.

Manual sweep of incoming unconfirmed transactions

A manual sweep of incoming unconfirmed transactions would be a special
type of Send in the current reference implementation.  A manual
sweep would auto-fill a send transaction with all currently
unconfirmed incoming transactions in the mempool.  The fee field would
be completely settable by the user and would auto-fill with the
suggestions of 0.001 BTC

A manual sweep would also be available as a context option when
selecting any unconfirmed transaction.

==Compatibility==

Wallet software that does not support this BIP will continue to
operate without modification.

==Examples==

pre
 //unconf_tx = ef7c0cbf6ba5af68d2ea239bba709b26ff7b0b669839a63bb01c2cb8e8de481e
 //hifee_tx  = f5a5ce5988cc72b9b90e8d1d6c910cda53c88d2175177357cc2f2cf0899fbaad
 //rcpt_addr = moQR7i8XM4rSGoNwEsw3h4YEuduuP6mxw7 # recipient controlled addr.
 //chng_addr = mvbnrCX3bg1cDRUu8pkecrvP6vQkSLDSou # recipient controlled addr.

 // UNCONF_TX - Assume a zero fee TX that miners are refusing in mempool
 {
 txid : $unconf_tx,
 //...
 vin : [
 //...
 ],
 vout : [
 

[bitcoin-dev] BIP 68 Questions

2015-07-01 Thread Rusty Russell
Hi Mark,

It looks like the code in BIP 68 compares the input's nSequence
against the transaction's nLockTime:

if ((int64_t)tx.nLockTime  LOCKTIME_THRESHOLD)
nMinHeight = std::max(nMinHeight, (int)tx.nLockTime);
else
nMinTime = std::max(nMinTime, (int64_t)tx.nLockTime);

if (nMinHeight = nBlockHeight)
return nMinHeight;
if (nMinTime = nBlockTime)
return nMinTime;

So if transaction B spends the output of transaction A:

1.  If A is in the blockchain already, you don't need a relative
locktime since you know A's time.
2.  If it isn't, you can't create B since you don't know what
value to set nLockTime to.

How was this supposed to work?

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


Re: [bitcoin-dev] BIP Process and Votes

2015-07-01 Thread odinn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Possibly relevant to this discussion (though old)

https://gist.github.com/gavinandresen/2355445 (last changed in 2012 I
think?)

and

https://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork
(which cites gavin's gist shown above)





On 06/25/2015 05:42 PM, Milly Bitcoin wrote:
 That description makes sense.  It also makes sense to separate out
 the hard fork from the soft fork process.   Right now some people
 want to use the soft fork procedure for a hard fork simply because
 there is no other way to do it.
 
 I am under the impression that most users expect
 changes/improvements that would require a hard fork so I think some
 kind of process needs to be developed.  Taking the responsibility
 off the shoulder of the core maintainer also makes sense.  The hard
 fork issue is too much of a distraction for people trying to
 maintain the nuts and bolts of the underlying system.
 
 I saw a suggestion that regularly scheduled hard forks should be 
 planned.  That seems to make sense so you would have some sort of 
 schedule where you would have cut off dates for hard-fork BIP 
 submissions.  That way you avoid the debates over whether there
 should be hard forks to what should be contained within the hard
 fork (if needed).  It makes sense to follow the BIP process as
 close as possible.  Possibly adding another step after Dev
 acceptance to include input from others such as
 merchants/exchanges/miners/users.  It will only be an approximation
 of decentralization and the process won't be perfect but if you
 want to move forward then you need some way to do it.
 
 Russ
 
 
 On 6/25/2015 4:05 PM, Tier Nolan wrote:
 On Thu, Jun 25, 2015 at 2:50 AM, Mark Friedenbach 
 m...@friedenbach.org mailto:m...@friedenbach.org wrote:
 
 I'm sorry but this is absolutely not the case, Milly. The reason 
 that people get defensive is that we have a carefully
 constructed process that does work (thank you very much!) and is
 well documented.
 
 
 There is no process for handling hard forks, which aren't bug
 fixes.
 
 Soft forks have a defined process of something like
 
 - BIP proposal + discussion - Proposed code - Dev acceptance -
 Release - Miner vote/acceptance
 
 The devs have a weak veto.  If they refuse to move forward with 
 changes, miners could perform a soft fork on their own.  They
 don't want to do that, as it would be controversial and the devs
 know the software better.
 
 The miner veto is stronger (for soft forks) but not absolute.
 The devs could checkpoint/blacklist a chain if miners implemented
 a fork that wasn't acceptable (assuming the community backed
 them).
 
 When ASICs arrived, it was pointed out by some that the devs
 could hit back if ASICs weren't made publicly available.  If they
 slightly tweaked the hashing algorithm, then current generation
 of ASICs would be useless.   The potential threat may have acted
 as a disincentive for ASIC manufacturers to use the ASICs
 themselves.
 
 Moving forward with agreement between all involved is the
 recommended and desirable approach.
 
 Consensus between all parties is the goal but isn't absolutely 
 required.  This escape valve is partly what makes consensus work.
 If you dig your heels in, then the other side can bypass you, but
 they have an incentive to try to convince you to compromise
 first.  The outcome is better if a middle ground can be found.
 
 Hard forks are different.  The checks and balances of weak
 vetoes are not present.  This means that things can devolve from
 consensus to mutual veto.  Consensus ceases to be a goal and
 becomes a requirement.
 
 This is partly a reflection of the nature of hard forks.
 Everyone needs to upgrade.  On the other hand, if most of the
 various groups upgrade, then users of the legacy software would
 have to upgrade or get left behind.  If 5% of the users decided
 not to upgrade, should they be allowed to demand that nobody else
 does?
 
 There is clearly some kind of threshold that is reasonable.
 
 The fundamental problem is that there isn't agreement on what
 the block size is.  Is it equal in status to the 21 million BTC
 limit?
 
 If Satoshi had said that 1MB was part of the definition of
 Bitcoin, then I think people would accept it to the same extent
 as they accept the 21 million coin limit.  It might cause people
 to leave the coin though.
 
 It was intended to be temporary, but people have realized that
 it might be a good idea to keep it.  In effect both sides could
 argue that they should be considered the status quo.
 
 I wonder if a coin toss would be acceptable :).  Come to an
 agreement or we decide by coin toss
 
 
 ___ 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 
 

Re: [bitcoin-dev] Draft BIP : fixed-schedule block size increase

2015-07-01 Thread odinn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

(My replies below)

On 06/26/2015 06:47 AM, Tier Nolan wrote:
 On Thu, Jun 25, 2015 at 3:07 PM, Adam Back a...@cypherspace.org 
 mailto:a...@cypherspace.org wrote:
 
 The hard-cap serves the purpose of a safety limit in case our 
 understanding about the economics, incentives or game-theory is
 wrong worst case.
 
 
 True.

Yep.

 
 BIP 100 and 101 could be combined.  Would that increase consensus?

Possibly ~ In my past message(s), I've suggested that Jeff's BIP 100
is a better alternative to Gavin's proposal(s), but that I didn't
think that this should be taken to mean that I am saying one thing is
superior to Gavin's work, rather, I emphasized that Gavin work with
Jeff and Adam.

At least, at this stage the things are in a BIP process.

If the BIP 100 and BIP 101 would be combined, what would that look
like on paper?

 
 - Miner vote threshold reached - Wait notice period or until
 earliest start time - Block size default target set to 1 MB - Soft
 limit set to 1MB - Hard limit set to 8MB + double every 2 years -
 Miner vote to decide soft limit (lowest size ignoring bottom 20%
 but 1MB minimum)
 
 Block size updates could be aligned with the difficulty setting
 and based on the last 2016 blocks.
 
 Miners could leave the 1MB limit in place initially.  The vote is
 to get the option to increase the block size.
 
 Legacy clients would remain in the network until 80% of miners
 vote to raise the limit and a miner produces a 1MB block.
 
 If the growth rate over-estimates hardware improvements, the devs
 could add a limit into the core client.  If they give notice and
 enough users update, then miners would have to accept it.
 
 The block size becomes min(miner's vote, core devs).  Even if 4
 years notice is given, blocks would only be 4X optimal.
 
 
 ___ bitcoin-dev mailing
 list bitcoin-dev@lists.linuxfoundation.org 
 https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
 

- -- 
http://abis.io ~
a protocol concept to enable decentralization
and expansion of a giving economy, and a new social good
https://keybase.io/odinn
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQEcBAEBAgAGBQJVlG5oAAoJEGxwq/inSG8C0r4H/0eklB9GxgHdl4LK7UoLeYYb
hlCiIJZ1+sRhTRIHrBtZO+nb2Uy3jLdqO9eOL4z9OXk3TCRBFwSdWrwsZXbzy3tC
5TmYlHvLSpfjiUxpP9JcO5E2VwFvB80pKkjPuUhwFVngh0HHsTA1IinUt52ZW1QP
wTdgKFHw3QL9zcfEXljVa3Ih9ssqrl5Eoab8vE2yr3p3QHR7caRLY1gFyKKIRxVH
YQangx6D33JcxyAcDNhYqavyt02lHxscqyZo6I4XUvE/aZVmSVTlm2zg7xdR7aCZ
0PlDwzpMD6Zk2QO/5qPPPos/5VETT0ompFK62go/hY2uB4cm+yZw3FFxR+Kknog=
=rtTH
-END PGP SIGNATURE-
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev