oh my God ...

发自我的 iPhone

> 在 2015年5月27日,19:26,Tier Nolan <tier.no...@gmail.com> 写道:
> 
> 
> 
>> On Wed, May 27, 2015 at 11:15 AM, Peter Todd <p...@petertodd.org> wrote:
>> The median time mechanism is basically a way for hashing power to show
>> what time they think it is. Equally, the nVersion soft-fork mechanism is
>> a way for hashing power to show what features they want to support.
> 
> Fair enough.  It means slightly more processing, but the median time could be 
> cached in the header index, so no big deal.
> 
>> Block counts are inconvenient for planning, as there's no guarantee
>> they'll actually happen in any particular time frame, forward and back.
> 
> I don't think the deadline needs to be set that accurately.  A roughly 6 
> month deadline should be fine, but as you say a majority of miners is needed 
> to abuse the median time and it is already a miner poll.
> 
> Perhaps the number of blocks used in the median could be increased to reduce 
> "noise".
> 
> The median time could be median of the last 144 blocks plus 12 hours.
>  
>> If you assume no large reorganizations, your table of known BIPs can
>> just as easily be a list of block heights even if the median time
>> mechanism is used.
> 
> I think it makes it easier to write the code.  It reduced the state that 
> needs to be stored per BIP.  You don't need to check if the previous bips 
> were all accepted.
> 
> Each bit is assigned to a particular BIP for a particular range of times (or 
> blocks).
> 
> If block numbers were used for the deadline, you just need to check the block 
> index for the deadline block.
> 
> enum {
>     BIP_INACTIVE = 0,
>     BIP_ACTIVE,
>     BIP_LOCKED
>     BIP_INVALID_BLOCK,
> }
> 
> int GetBIPState(block, bip) 
> {
>     if (block.height == bip.deadline)  // Bit must be set to match 
> locked/unlocked at deadline
>     {
>         int bipState = check_supermajority(...);
>         if (bipState == BIP_LOCKED && (block.nVersion & bip.bit)
>             return BIP_LOCKED;
> 
>         if (bipState != BIP_LOCKED && (block.nVersion & (~bip.bit)))
>             return BIP_INACTIVE;
> 
>         return BIP_INVALID_BLOCK;
>     }
> 
>     if (block.height > deadline) // Look at the deadline block to determine 
> if the BIP is locked
>         return (block_index[deadline].nVersion & bip_bit) != 0 ? BIP_LOCKED : 
> BIP_INACTIVE;
> 
>     if (block.height < startline + I) // BIP cannot activate/lock until 
> startline + implicit window size
>         return INACTIVE;
> 
>     return check_supermajority(....) // Check supermajority of bit
> }
> 
> The block at height deadline would indicate if the BIP was locked in.
> 
> Block time could still be used as long as the block height was set after 
> that.  The deadline_time could be in six months.  The startline height could 
> be the current block height and the deadline_height could be startline + 
> 35000.  
> 
> The gives roughly
> 
> start time = now
> deadline time = now + six months
> deadline height = now + eight months
> 
> The deadline height is the block height when the bit is returned to the pool 
> but the deadline time is when the BIP has to be accepted.
> 
> It also helps with the warning system.  For each block height, there is a set 
> of known BIP bits that are allowed.  Once the final deadline is passed, the 
> expected mask is zeros.
> 
>> On Wed, May 27, 2015 at 11:15 AM, Jorge Timón <jti...@jtimon.cc> wrote:
>> On May 27, 2015 11:35 AM, "Tier Nolan" <tier.no...@gmail.com> wrote:
>> 
>> > Was the intention to change the 95% rule.  You need 750 of the last 1000 
>> > to activate and then must wait at least 1000 for implication?
>> 
>> You need 75% to start applying it, 95% to start rejecting blocks that don't 
>> apply it.
> 
> I think the phrasing is ambiguous.  I was just asking for clarification.
> 
> "Whenever I out of any W subsequent blocks (regardless of the block itself) 
> have bit B set,"
> 
> That suggests that the I of W blocks for the 95% rule must happen after 
> activation.  This makes the rule checking harder.  Easier to use the current 
> system, where blocks that were part of the 750 rule also count towards the 
> 95% rule.
> ------------------------------------------------------------------------------
> 
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
> 
------------------------------------------------------------------------------
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development

Reply via email to