Re: [Bitcoin-development] Deprecating midstate in getwork?

2011-09-27 Thread Jeff Garzik
On Mon, Sep 26, 2011 at 3:42 PM, Nils Schneider n...@nilsschneider.net wrote:
 I'd like to simplify the internal reference miner and remove all
 dependencies on cryptopp (it's the only place we use cryptopp instead of
 OpenSSL).

 Unfortunately, cryptopp is also used to calculate getwork midstate.
 This field is redundant and the miner could easily calculate it from the
 blockheader so I'd like to remove it.

 Any thoughts? Where should such a change should be announced so all
 miners can be upgraded?

I think one of the pools was already working on something like that?
I'm pretty sure it can be removed, and I'm pretty sure somebody has
already field-tested that guess.
-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Protocol extensions

2011-12-17 Thread Jeff Garzik
On Sat, Dec 17, 2011 at 7:44 PM, Jordan Mack jordanm...@parhelic.com wrote:
 While using DHT for storage of the block chain is an intriguing concept,
 I do not see how it is feasible. As Gavin noted, DHT is a system that is
 difficult to impossible to guarantee against data loss or manipulation.

 Even if we found a way to store the block chain in DHT, how would
 transactions be verified? As Gavin noted, you could ask the network, but
 cannot necessarily trust the peers you are connected to. Verification of
 the full block chain allows the client to trust no one.

Well, the block chain data itself is internally self-validating.  As
long as you know the latest block's hash -- a big if -- there is no
problem downloading all other block chain data from DHT or any other
untrusted source.

In a malicious case, you would notice latest-hash differs from
non-malicious and wind up downloading multiple chains, when walking
hashes backwards through a DHT/lookup table.  So, a bit more work but
nothing fundamentally less secure _on a trust basis_.

Of course, I was focusing on data validation, which ignores other
factors such as DoS'ing the DHT.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Learn Windows Azure Live!  Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for 
developers. It will provide a great way to learn Windows Azure and what it 
provides. You can attend the event by watching it streamed LIVE online.  
Learn more at http://p.sf.net/sfu/ms-windowsazure
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Network version increase

2012-04-02 Thread Jeff Garzik
On Mon, Apr 2, 2012 at 11:23 AM, Pieter Wuille pieter.wui...@gmail.com wrote:
 Any opinions about a numbering scheme? Currently the value 6 is used. We 
 could
 simply start increasing the number one by one now for every change, or we 
 could
 do a cleanup to 10 first, and start incrementing from there.


It would be nice to have 10 as the baseline, frozen protocol.
-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] BIP 31

2012-04-11 Thread Jeff Garzik
On Wed, Apr 11, 2012 at 11:42 AM, Luke-Jr l...@dashjr.org wrote:
 On Wednesday, April 11, 2012 11:32:18 AM Mike Hearn wrote:
 Jeff asked for a BIP for the pong message, so here it is:

 https://en.bitcoin.it/wiki/BIP_0031

 I thought we were going with 60001 for the protocol version bump?

See pull #1081, which makes a few minor revisions along these lines.

Mike's original pull still has my ACK, FWIW, too.  Can pull either.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Adding request/reply id in messages

2012-04-12 Thread Jeff Garzik
On Wed, Apr 11, 2012 at 2:39 PM, Christian Bodt sirk...@gmail.com wrote:
 Hi,

 I would like to discuss the following bitcoin protocol improvement proposal:

          Adding request/reply id in all messages (in the message header,
 based on what was done for the checksum field)

 The original reason is that I found it very hard to implement robust
 blockchain downloading as we are missing context information:
 The download protocol relies on the other peer sending one (or more) inv
 reponse(s) to getblocks and sending the hashContinue.
 But if the other peer doesn't send a response to getblock, send a partial
 response to getblocks, mixes it with some unrelated blocks inventories
 or doesn't send the hashContinue it is very hard to detect and handle
 (e.g. ban the peer and switch to another).  This could cause some DoS
 attacks by misbehaving peers.

If the peer is misbehaving, then disconnect.  Your protocol change
does not offer any clear benefits in this area, as these sorts of
attacks/misbehaviors/bugs are still just as possible, and just as
damaging (or not).

Just disconnect the strange peer!

 The problems are that 1/ we don't know how many inv messages to wait for
 after getblocks and 2/ we don't know how to distinguish between result of
 getblocks and spontaneous inv notifications.
 The same is true for  addr messages (it is both a notification and reply)
 but this is less of a problem as a lack of response to getaddr
 doesn't constitute a DoS.

 The idea would be to add a new requestid field in messages and define the
 following:


Stateless protocols have a lot of value.  They are easiest to
implement, and easier to prove correct.  Existing clients like
ArtForz' half-a-node, variants of which are deployed all over the
place in bitcoin-land, rely on the stateless-ness to one degree or
another.

Stateful protocols, too, have their problems as well.  One must add
code to help remain synchronized between local and remote states,
which your suggested change only hints at.  NFSv4 and RPC have a long
history of dealing with stateful-ness issues.  Obviously bitcoin P2P
is nowhere near as complex, but the history of NFS development offers
several lessons applicable to your proposed change.

Overall, IMO your listed reasons for needing this major change
(stateless-stateful) do not really justify the change.  Handling
initial block download can be accomplished in a number of ways, and
peer(s) may crash or return odd results.  You must handle these cases
properly, regardless of the presence of req/reply id's.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Bitcoin TX fill-or-kill deterministic behavior

2012-04-12 Thread Jeff Garzik
Not sure whether this rises to the level of a BIP or not, as it is
largely an implementation change.

One of my From-Day-One complaints about bitcoin is that transactions
behavior could be far more deterministic (predictable), from a user
standpoint.  Transactions in the current system can easily remain in
limbo forever.

One big step in making transactions behave more predictably would be
to remove transactions from the memory pool, if they have not made it
into a block for a couple days.  i.e.

1.  N = 1 or 2 or whatever the community prefers.  Ideally enough time
for a third-tier miner, mining strange TXs, finds a block.
2.  H1 = height of block chain, when a TX is received
3.  H2 = H1 + (144 * N)
4.  If block chain height reaches H2, and TX has not made it into a
block, drop TX from memory pool

Although this only impacts a small amount of TX's ultimately, what it
does do is give us the ability -- once miners have upgraded to this
rule -- to tell bitcoin users that their transactions expire after N
days.

Backwards compatibility should not be an issue; clients are free to
retransmit their TX at any time, as usual, thereby resetting the
clock for all peers who have forgotten the TX in question.

Once in place, clients may then implement code that notices a TX has
expired (read: likely to have been forgotten by the network, assuming
they themselves have stopped retransmitting it).  Then you can start
working on wallet/coin recovery, perhaps resending with a higher fee
etc.

The above change is not really fill-or-kill but it should be a big
step, opening the door to deterministic TX behavior.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Bitcoin TX fill-or-kill deterministic behavior

2012-04-12 Thread Jeff Garzik
On Thu, Apr 12, 2012 at 3:19 PM, Alan Reiner etothe...@gmail.com wrote:
 My one big concern about this that users find a way to exploit this behavior
 for themselves.  If it's too easy for users to create tx they know will get
 stuck and expire, it's no different than letting them cancel their zero-conf
 transactions.  i.e. I pay 0.5 BTC in a store for a candy bar, so I send it
 using a combination of inputs and fees that I know will lead to it being
 stuck and expire.

 On the other hand, if such conditions are deterministic enough, it could be
 detected by the recipient and flagged.

 It's not a huge deal, but it's something to consider.

Do you have a -specific- concern that you feel may be exploited?

Expiration already occurs at random, as nodes shut down and restart,
log on and log off the network.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Bitcoin TX fill-or-kill deterministic behavior

2012-04-13 Thread Jeff Garzik
On Fri, Apr 13, 2012 at 6:04 AM, Mike Hearn m...@plan99.net wrote:
 It sounds OK as long as you exclude nLockTimed transactions.

ACK, agreed

 That said, if you broadcast a transaction that does not meet the fee
 rules, you should be able to notice that it wasn't accepted by your
 peers immediately. Today it's painful because the protocol isn't very
 chatty - in bitcoinj I plan to do this by announcing to half the
 connected peers and waiting to see if the transaction comes back on
 the other half. Getting a response from a peer that the TX was dropped
 for reasons {x,y,z} is a better design but needs another protocol
 change.

 So having transactions expire would address the case where somebody
 broadcasts a transaction that successfully propagates across the
 network, but then isn't actually accepted by miners for some reason.

Correct.  As mentioned, this change should impact few TXs on the
existing network.

It's mostly about getting everyone to collectively agree that
transactions should expire, if they don't make it into a block.
(excl. nLockTime stuff)  A minor technical step, but also a useful
policy step.

 For instance due to a change in the default fee schedules. That risk
 can be mitigated somewhat by being careful about such changes (timed
 phase ins set multiple months out so people have time to upgrade,
 alerts announcing it, etc).

 I'm not sure we should be encouraging users to attach fees to
 transactions though. Even if you can replace a transaction after a
 couple of days, the user experience of trying to get the fee right
 is atrocious.

Yes -- I think there is near-universal agreement on this user experience point.

 I don't think any sensible merchant will actually be
 willing to put their customers through this nonsense. If somebody
 broadcasts a transaction that successfully propagates across a big
 chunk of the network but then gets stuck due to lacking sufficient
 fees, the best fix is for the merchant to broadcast another
 transaction that spends the first and increases the fees on it that
 way. After this happens a few times, if I was a merchant I'd be
 tempted to just ask buyers to submit the TX to me directly and I'll
 handle keeping up with what miners currently charge and attaching
 fees. I don't want my customers to have to think about this and have
 trades spuriously fail when they forget.

 That design requires a minor change to how fees are calculated inside
 the memory pool, to include fees on un-included dependencies. But that
 seems fairly uncontroversial to me. It's best for users, merchants and
 miners to not leave chains of transactions in limbo when together
 their fees add up to the minimum required amount.

So, to be specific... a A-B chain of transactions, that collectively
meet the network's fee requirements?  It seems quite reasonable to
accept that, sure.  ACK on concept.  A chain of length 2 seems like it
would be most common, and limiting total chain length (to 10? 100?)
for any one chain in the memory pool seems prudent.

As to the larger issue of fees...  I will readily admit I have no good ideas.

The user's experience is pretty poor:  while it might make economic
sense, from the network's standpoint, to charge for the service of
verifying and storing a transaction, the user has limited means to
determine an ideal fee.  There are also other valid economic models
(receiver pays fee) out there that may successfully sustain the
network.

Ideally the fee, if any, is market based and negotiated.  The current
method is loose-consensus, mainly aimed at (a) combating dust spam or
(b) ensuring it becomes increasingly more expensive to fill a block,
up to the current 1MB maximum.  I think almost everyone agrees the
current fee system is an ugly, warty hack.  Problem is... like
democracy, no matter how ugly it is, people have trouble finding a
better system :)

Furthermore, many of these ideas -- like sending TX's directly to the
merchant -- involve far more direct payee-payer communication on the
part of the wallet client than is currently envisioned by the bitcoin
P2P network design, which is broadcast-oriented.  So, it remains an
open question whether we want the base bitcoin layer to even worry
about real-time fee negotiation and direct TX transmission.

It is possible that an instant-payments layer evolves on top of the
base bitcoin block chain layer, with bitcoin transactions evolving
largely into settlements between instant-payment intermediaries large
and small.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin

Re: [Bitcoin-development] Bitcoin TX fill-or-kill deterministic behavior

2012-04-14 Thread Jeff Garzik
On Sat, Apr 14, 2012 at 11:13 AM, Mike Hearn m...@plan99.net wrote:
 So, to be specific... a A-B chain of transactions, that collectively
 meet the network's fee requirements?

 Yes.

ACK on the concept

 Ideally the fee, if any, is market based and negotiated. Problem is... like
 democracy, no matter how ugly it is, people have trouble finding a
 better system :)

 I think this is something we can explore over the coming years. I
 favor having people commonly pass transactions around outside the
 broadcast network with the transactions and their dependencies being
 broadcast only when there's a lack of trust between recipient and
 sender. The block chain is an optional service after all.

Agreed.  A TX is just a signed message.  No reason why it -must- use
mainnet's distributed notary service.

 Furthermore, many of these ideas -- like sending TX's directly to the
 merchant -- involve far more direct payee-payer communication on the
 part of the wallet client than is currently envisioned

 Yes, though it's worth remembering that the original Bitcoin design
 did have participants communicate directly. When I talked with Satoshi
 in 2009 he saw the pay-to-IP-address mode imagined as the normal way
 to make payments, with pay-to-address being used as a kind of backup
 for when the recipient was offline.

 In the end that's not how things evolved, but it the pendulum could
 easily swing back the other way.

IIRC pay-to-IP was removed because it was unreliable -and- detrimental
to privacy?  ISTR Satoshi specifically disliking the privacy elements
of p2ip.

But I also have a gut feeling that these sorts of payments and
direct communication should be done via a wholly separate protocol
than the bitcoin P2P protocol.  Doing p2ip as it was done originally,
inside the bitcoin P2P protocol, was a mistake.  Extensible as it is,
I think a better job -- and faster evolution -- can be done with a
separate protocol on a separate port.

Some HTTP derivative would probably make life easier for mobile
payments and firewalled scenarios, and for client-merchant
communications, for instance.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Bitcoin TX fill-or-kill deterministic behavior

2012-04-14 Thread Jeff Garzik
On Sat, Apr 14, 2012 at 5:27 PM, Pieter Wuille pieter.wui...@gmail.com wrote:
 On Sat, Apr 14, 2012 at 04:20:50PM -0400, Jeff Garzik wrote:
 Some HTTP derivative would probably make life easier for mobile
 payments and firewalled scenarios, and for client-merchant
 communications, for instance.

 Have you ever read https://gist.github.com/1237788 ?

Looks like you're already headed in the right direction :)

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] new bitcoin.org clients page

2012-05-02 Thread Jeff Garzik
On Wed, May 2, 2012 at 12:58 PM, grarpamp grarp...@gmail.com wrote:
 Try Reply to All

 That puts the sender in 'to' and list in 'cc',
 which dupes to the sender and eventually
 blows out the to and cc lines as everyone
 chimes in and doesn't trim. 'reply to' solves
 most of that. assuming the list sw can do it.

Reply-To Munging Considered Harmful
http://www.unicom.com/pw/reply-to-harmful.html



-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] new bitcoin.org clients page

2012-05-02 Thread Jeff Garzik
On Mon, Apr 30, 2012 at 1:50 PM, Amir Taaki zgen...@yahoo.com wrote:
 Check it :) https://github.com/bitcoin/bitcoin.org/pull/34

Personally, all this seems far too focused on a centralized website
(bitcoin.org), and presents far too many choices at once to the user.

On bitcoin.org (registered by Satoshi), I would rather see the Satoshi
reference client and perhaps an other clients link on the wiki.

Modern websites are working hard to _reduce_ the number of download
links, not _increase_ them.  See, e.g.
http://fedoraproject.org/en/get-fedora where a single download choice
is presented, and then an other options link is below the great big
download button.

Rather than fighting over what a particular bitcoin.org page should
look like, why not maintain an independently managed
BitcoinClients.org website?  Or GetBitcoinClient.org or somesuch.

Solve this problem in a distributed fashion, rather than stuffing it
all onto bitcoin.org.  Bitcoin.org, IMO, is the home of the reference
project not the entire bitcoin community.  Emphasizing that months
ago was why the forum was moved to bitcointalk.org.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] P2P feature discovery (was Re: BIP 33 - Stratized Nodes)

2012-05-16 Thread Jeff Garzik
On Wed, May 16, 2012 at 12:34 PM, Amir Taaki zgen...@yahoo.com wrote:
 Please check out my proposal,

 https://en.bitcoin.it/wiki/BIP_0033

 I want to use the existing Bitcoin protocol to provide this functionality in 
 order to maintain compatibility. This proposal does not affect current 
 Bitcoin clients, but allows the parallel system to operate alongside and 
 sometimes intersect with the main Bitcoin network in a positive way.


I do not object to the concept, but the discovery process should be
improved.  Even venerable SMTP has a better, more flexible
capabilities discovery process.

Instead of further overloading service bits in the version message, or
altering the version message, let us instead make feature discovery an
easy, flexible, extensible process.

We can add new commands without impacting older nodes, so let's create
a new command get-features (or pick your name) that returns a list
of key/value pairs.  The key is a string, the value type is determined
by the key.

Standard behavior of clients would be to send get-features after
seeing remote version info, as part of the initial connection
handshake.

In any case, the basic point is to move FAR away from fighting over a
limited, inflexible resource (service bits in version msg) to
something string-based and easily extensible.

I can create this as BIP 34, if people wish.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] P2P feature discovery (was Re: BIP 33 - Stratized Nodes)

2012-05-16 Thread Jeff Garzik
On Wed, May 16, 2012 at 2:29 PM, Luke-Jr l...@dashjr.org wrote:
 That assumes you already have a connection to the peer in question.
 As I understand it, the service bits are propagated as part of the address,
 so you can see at a glance which nodes you want to connect to for some
 special service. Passing a huge list along might be unwieldy (though it
 makes sense for protocol changes that don't add new services).

If the peer list becomes too, um, stratified maybe that's a Big Hint
that said clients should be using another network entirely, and not
overloading bitcoin's P2P network for wholly unrelated tasks.  The
bitcoin P2P network is not a general message transit network.

Another argument against the proposal, IOW, if you ask me

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Punishing empty blocks?

2012-05-24 Thread Jeff Garzik
There appears to be some non-trivial mining power devoted to mining
empty blocks.  Even with satoshi's key observation -- hash a fixed
80-byte header, not the entire block -- some miners still find it
easier to mine empty blocks, rather than watch the network for new
transactions.

Therefore I was wondering what people thought about a client
implementation change:

 - Do not store or relay empty blocks, if time since last block  X
   (where X = 60 minutes, perhaps)

or even stronger,

 - Ensure latest block includes at least X percent of mempool
unconfirmed TXs

The former is easier to implement, though there is the danger that
no-TX miners simply include a statically generated transaction or two.

The latter might be considered problematic, as it might refuse to
relay quickly found blocks.

Comments?  It wouldn't be a problem if these no-TX blocks were not
already getting frequent (1 in 20).

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Punishing empty blocks?

2012-05-24 Thread Jeff Garzik
On Thu, May 24, 2012 at 1:13 PM, Joel Joonatan Kaartinen
joel.kaarti...@gmail.com wrote:
 optimization that avoids rechecking transactions that have already been
 verified as valid. Any transactions it doesn't have to verify are from the
 pool, of course :)

Work in this area is already progressing, though it is outside the
scope of this proposal regarding lazy miners and empty blocks.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Punishing empty blocks?

2012-05-24 Thread Jeff Garzik
On Thu, May 24, 2012 at 1:27 PM, Robert McKay rob...@mckay.com wrote:
 If miners wanted to continue mining empty blocks without bothering to
 monitor the Tx pool they would just switch to stuffing the empty blocks
 with a dummy transaction of their own to get round your new rules.

Yes.  This was stated in the original email.


 Once the block reward halves in a few months time then receiving
 transaction fees will probably become more important to the miner's
 profit and loss calculations and they'll spend the extra time to
 implement proper transaction processing. I suspect if we do nothing this
 particular issue will go away. Perhaps it could be helped along by
 publishing some example code to make it easier for them.

At current rates it is potentially years before that point is reached
-- years of degraded service for existing users.


 The ability to refuse transactions seems like an important part of the
 game theory of transaction pricing. Miners are supposed to be able to
 jack up transaction costs by declining to process no fee or too low fee
 (in their opinion) transactions.. the counter balance is that they are
 losing money by doing that and leaving more on the table for the next
 miner to score a block.

 I expect that in the future there will be other instances when people
 complain that the miners are being 'unfair' and that the rules should be
 changed in some way to lower transaction fees (ie: increase block size).

If you see a rule change, you have misunderstood the proposal.

This is an -implementation- change, which users and miners are free to
accept or reject as part of their choice of software to use in the
bitcoin ecosystem.

As such, miners continue to be free to build upon empty blocks, and
let those blocks become part of a useful chain.  You would not simply
/ban/ empty blocks completely, but avoid relaying top-of-chain empty
blocks.

Mining power and network collaborate to choose the best chain at that
point -- perhaps even including those empty blocks.  Clients will
continue to follow the longest, strongest chain, even after this
implementation change.

An implementation change is a soft vote of choice by the user, not a
hard requirement on all users.

 I think it should be legitimate not to publish a transaction
 to the p2p network at all.. in the future there will probably be lots of
 networks other than the p2p network.. right now we have the IPv6 network
 and the IPv4 network.. in the future there could be many other protocols
 and perhaps not all transactions will make it back to the old legacy
 ipv4 p2p network or into the mempool of bitcoin nodes on that network..
 but they should still be able to get into the block chain.

See above -- such behavior is perfectly fine.

It should be noted that out of band (OOB) TXs, transited through third
party means outside P2P network, would not cause _empty_ blocks, as
the block chain will continue to have traffic for the foreseeable
future.

OOB TXs are a great idea, too.  In a hyperscaled bitcoin future, OOB
TXs might even be the norm.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Punishing empty blocks?

2012-05-24 Thread Jeff Garzik
On Thu, May 24, 2012 at 4:31 PM, Luke-Jr l...@dashjr.org wrote:
 These are problematic for legitimate miners:
 1) The freedom to reject transactions based on fees or spam filters, is
 severely restricted. As mentioned in other replies, this is an important point
 of Bitcoin's design.
 1b) This punishes miners with superior transaction spam filtering. As with all
 spam filtering, it is often an arms race and therefore the filter rules must
 be kept private by the miners, and therefore cannot be disclosed for the
 validating clients to take into consideration.

This is simply not true given current available data, i.e. the current
blockchain and ongoing not-spam transaction rate/pool.


 The argument that these are not rule changes is flawed:
 1) As of right now, 99% of the network runs a single client. Anything this
 client rejects does de facto become a rule change.

According to your own numbers even, this is not true.  99% of the
network runs a wide variety of rules and versions.  Even with a
critical security announcement, the percentage of those running the
latest version is not large.


 2) Even if there were a diverse ecosystem of clients in place, discouragement
 rules that potentially affect legitimate miners significantly mess with the
 odds of finding a block.
 3) If legitimate miners do not adopt counter-rules to bypass these new
 restrictions, the illegitimate miners are left with an even larger percentage
 of blocks found.

Miners are not the -only- ones that get a say in what is spam, and
what is not.  If miners are generating garbage, network users have the
right to veto that garbage.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Punishing empty blocks?

2012-05-24 Thread Jeff Garzik
On Thu, May 24, 2012 at 8:45 PM, Luke-Jr l...@dashjr.org wrote:
 On Thursday, May 24, 2012 4:33:12 PM Jeff Garzik wrote:
 Comments?  It wouldn't be a problem if these no-TX blocks were not
 already getting frequent (1 in 20).

 FWIW, based on statistics for Eligius's past 100 blocks, it seems 10% (1 in
 10) of 1-txn blocks is not actually unreasonable. This also means these 1-txn
 mined blocks are not necessarily harming Bitcoin intentionally. Anyone care to
 figure out the math for how fast miners need to finish processing transactions
 to reduce the number of 1txn blocks?

Look at the time since last block, and correlate with the number of
non-spam TX's in the memory pool at the time.  It is obvious which
ones are quick blocks (60 seconds since last block, no big deal) and
which ones are the lazy miners ( 120 seconds since last block).

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] New P2P commands for diagnostics, SPV clients

2012-06-15 Thread Jeff Garzik
On Fri, Jun 15, 2012 at 9:43 AM, Mike Hearn m...@plan99.net wrote:
 How about see this project as a three part change?

 First step - add the mempool command and make nodes sync up their
 mempools on startup.

Here's the mempool implementation:
https://github.com/bitcoin/bitcoin/pull/1470

SPV nodes would definitely want to sync up their mempool upon startup.
 As for full nodes... I like the organic growth and random nature of
the mempools.  On the fence, WRT full node mempool sync at startup.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] SatoshiDice and Near-term scalability

2012-06-15 Thread Jeff Garzik
On Fri, Jun 15, 2012 at 12:56 PM, Stefan Thomas m...@justmoon.de wrote:
 The artificial limits like the block size limit are essentially putting
[...]

Changing the block size is an item for the hard-fork list.  The chance
of the block size limit changing in the short term seems rather low...
 it is a nuclear option.

Hard-fork requires a very high level of community buy-in, because it
shuts out older clients who will simply refuse to consider 1MB blocks
valid.

Anything approaching that level of change would need some good, hard
data indicating that SatoshiDice was shutting out the majority of
other traffic.  Does anyone measure mainnet normal tx confirmation
times on a regular basis?  Any other hard data?

Clearly SatoshiDice is a heavy user of the network, but there is a
vast difference between a good stress test and a network flood that is
shutting out non-SD users.

Can someone please help quantify the situation?  kthanks :)

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Proposed new P2P command and response: getcmds, cmdlist

2012-06-15 Thread Jeff Garzik
Outside of major features advertised network-wide in nService bits,
P2P protocol lacks a good method of enumerating minor features or
extensions.  The version number increment is coarse-grained, and is
not self-documenting.  A simple extension which lists supported
commands is added, as demonstrated in this pull request:

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

Another option is for verack to return this information at login,
eliminating the need for a separate command/response.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Random order for clients page

2012-07-09 Thread Jeff Garzik
On Mon, Jul 9, 2012 at 12:04 PM, Gregory Maxwell gmaxw...@gmail.com wrote:
 If you had authored this as a pull request rather than making the
 change unilaterally I would have recommended leaving it so the
 reference client was always first. I also would have suggested that it
 use JS randomization instead of jekyll in order to get more even
 coverage, though I think thats a more minor point.

Agreed, and this would be why I support revert -- pull requests are
for anything non-trivial.  This practice of pull requests clearly
should be followed in the case of controversial changes.

 Some people were concerned when this page was created that it would
 just be a source of useless disputes.  I think its becoming clear that
 this is the case. I think the cost of dealing with this page is
 starting to exceed the benefit it provides and we should probably
 consider removing it.

Agreed.
-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Bitcoin script opcode counts

2012-07-26 Thread Jeff Garzik
On Thu, Jul 26, 2012 at 1:50 AM, Jeff Garzik jgar...@exmulti.com wrote:
 Just run a query over the entire blockchain, looking at script opcode
 use. I counted the number of times each opcode was used, in total:
 https://gist.github.com/3180470

And here is the testnet3 data: https://gist.github.com/3180486

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Bitcoin script opcode counts

2012-07-26 Thread Jeff Garzik
Just run a query over the entire blockchain, looking at script opcode
use. I counted the number of times each opcode was used, in total:
https://gist.github.com/3180470

(data in full)
OP_0 104
OP_1 27
OP_2 12
OP_2OVER 182
OP_2SWAP 182
OP_3 16
OP_4 1
OP_CHECKMULTISIG 22
OP_CHECKSIG 12188693
OP_CODESEPARATOR 14
OP_DEPTH 182
OP_DROP 19
OP_DUP 1161
OP_EQUAL 88
OP_EQUALVERIFY 11699985
OP_HASH160 11700067
OP_IF 182
OP_IFDUP 182
OP_MIN 4
OP_NOP1 1
OP_NOP2 15
OP_NOP 5
OP_PUSHDATA1 18
OP_PUSHDATA2 4
OP_PUSHDATA 32350369
OP_SHA256 2
OP_VERIFY 182


-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] script tests - invalid script in script_valid.json?

2012-07-29 Thread Jeff Garzik
On Sun, Jul 29, 2012 at 1:35 PM, Stefan Thomas m...@justmoon.de wrote:
 Big props to Gavin for adding those data-driven test cases. I can't
 overstate how useful they are.

+1  they are a useful, cross-platform test tool.

pynode will be making use of them shortly.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Version 0.7 release planning

2012-08-02 Thread Jeff Garzik
There seems to be consensus that we should go ahead and do a release,
before leveldb or ultraprune or anything major lands.  There is no
major landmark feature, but just a useful collection of small changes.
 It seems like a good time to Release Early, Release Often and make a
checkpoint release.

Some rough draft release notes were dumped in
https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes.txt

Opening the floor...  What do we collectively want to happen, before
0.7 release?  What is the todo list for 0.7?

After cleaning out some pull requests yesterday, and looking at the
list today, I see

1) CreateNewBlock: Child-pays-for-parent / Add transaction fee later
luke-jr https://github.com/bitcoin/bitcoin/pull/1647

2) Translations update 2012-08-01 (fetched from Transifex)
Diapolo https://github.com/bitcoin/bitcoin/pull/1644

3) Add address groupings RPC from coderrr's coincontrol patches.
gmaxwell https://github.com/bitcoin/bitcoin/pull/1642

4) Add 'mempool' P2P command, and extend 'getdata' behavior
jgarzik https://github.com/bitcoin/bitcoin/pull/1641

5) PROBABLY NOT, BUT MAYBE: Relay blocks as a preview before
checking the transactions in them
luke-jr https://github.com/bitcoin/bitcoin/pull/1586

6) JSON-RPC method: prioritisetransaction txid priority delta
luke-jr https://github.com/bitcoin/bitcoin/pull/1583

7) HOPEFULLY: Addnode optimization and addnode access via RPC
BlueMatt https://github.com/bitcoin/bitcoin/pull/1549

8) MAYBE: Transition to requiring block height in block coinbases
gavinandresen https://github.com/bitcoin/bitcoin/pull/1526

9) WE MUST PICK ONE: RPC: lock push-down, preparing for
parallelization opportunities
jgarzik https://github.com/bitcoin/bitcoin/pull/1494
or
RPC: add facility to enable RPCs to run outside cs_main, wallet locks
jgarzik https://github.com/bitcoin/bitcoin/pull/1493

10) I THINK WE WANT THIS?  Make IPv6 support optional again (defaults
to enabled)
luke-jr https://github.com/bitcoin/bitcoin/pull/1431

11) MAYBE: getblocktemplate ('getmemorypool', post IRC debate)
luke-jr https://github.com/bitcoin/bitcoin/pull/936


Devs -- feel free to commit directly to doc/release-notes.txt if there
is a missing commit, or something that may be better described.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Version 0.7 release planning

2012-08-02 Thread Jeff Garzik
On Thu, Aug 2, 2012 at 12:43 PM, Jeff Garzik jgar...@exmulti.com wrote:
 There seems to be consensus that we should go ahead and do a release,
 before leveldb or ultraprune or anything major lands.  There is no
 major landmark feature, but just a useful collection of small changes.
  It seems like a good time to Release Early, Release Often and make a
 checkpoint release.

Procedural note:  since Gavin is on vacation, this release obviously
won't occur for at least a couple weeks.

If Gavin appears on email or IRC, though, I might try to pounce on him
and convince him to let us go ahead with 0.7-rc1, if the other devs
are happy.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] BIP: Custom Services

2012-08-13 Thread Jeff Garzik
On Mon, Aug 13, 2012 at 3:41 AM, Stefan Thomas m...@justmoon.de wrote:
 I was working on some custom protocol extensions for Bitcoin that I
 wanted to experiment with and I noticed that in order to enable nodes to
 announce these services the only mechanism the protocol currently
 provides is to use one of the 64 bits of the services field. This is
 obviously a resource that will run out quickly if we all just help
 ourselves, so I set out to come up with a standardized way to announce
 custom protocol extensions, without using up NODE_* flags.

 Please kindly review my solution:

 https://en.bitcoin.it/wiki/User:Justmoon/BIP_Draft:_Custom_Services

heh, this is not a new idea.  I even implemented a pull request for
service discovery myself, which simply consisted of querying the list
of supported commands:
https://github.com/bitcoin/bitcoin/pull/1471

On IRC, I proposed several alternatives including modifying 'version'
(which you did) and a new getcaps (get capabilities) command to be
added in protocol_version X.

gmaxwell seems continually unenthused, and made a valid point about
service advertisement:  these capabilities are not advertised with
CAddress, so how does one usefully discover and make use of them?
What are real world use cases, that cannot be solved with nService
bits?

My only response is a weak one:  inevitability.  It seems likely that
-somebody- will implement their own P2P commands for their own client
subset, even if only a simple use 'getstatus' with strSubVer matching
/FooClient/

Therefore, if it is inevitable, we might as well make some basic rules
about how to extended your P2P command set.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Protocol changes for SPV clients: mempool, getdata commands

2012-08-13 Thread Jeff Garzik
A small change to the protocol is proposed for satoshi client v0.7
(upcoming release):

Add 'mempool' P2P command, and extend 'getdata' behavior
https://github.com/bitcoin/bitcoin/pull/1641

The genesis of this command is to permit SPV clients to access the
memory pool, but secondary uses include diagnostics and miner download
(so that miners won't miss lucrative TX's due to node restart).
getdata behavior is extended to include any memory pool transaction,
relaxing a previous getdata restriction.

Didn't feel this warranted a BIP, but can write one if people really want one.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] BIP 35: add mempool message

2012-08-16 Thread Jeff Garzik
Consensus was we should do a BIP for all P2P changes, so here it is...
 feedback requested.

https://en.bitcoin.it/wiki/BIP_0035

Abstract
---
Make a network node's transaction memory pool accessible via a new
mempool message.  Extend the existing getdata message behavior to permit
accessing the transaction memory pool.


Motivation
---
Several use cases make it desireable to expore a network node's transaction
memory pool:
* SPV clients, wishing to obtain zero-confirmation transactions sent or
  received.
* Miners, downloading existing network transactions after a restart.
* Remote network diagnostics.


Specification
---
1) Upon receipt of a mempool message, the node will respond
   with an inv message containing MSG_TX hashes of all the
   transactions in the node's transaction memory pool.

   An inv message is always returned, even if empty.

2) The typical node behavior in response to an inv is getdata.

   However, the reference Satoshi implementation ignores requests
   for transaction hashes outside that which is recently relayed.

   To support mempool, an implementation must extend its getdata
   message support to querying the memory pool.

3) Feature discovery is enabled by checking two version message attributes:

   a) Protocol version = 60002
   b) NODE_NETWORK bit set in nServices


Backwards compatibility
---
Older clients remain 100% compatible and interoperable after this change.


Implementation
---
See https://github.com/bitcoin/bitcoin/pull/1641

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] BIP 35: add mempool message

2012-08-16 Thread Jeff Garzik
On Thu, Aug 16, 2012 at 1:40 PM, Amir Taaki zgen...@yahoo.com wrote:
 The format for mempool packet is missing. I'm guessing that it is an empty 
 message, right?

Yes, it is an empty message.  BIP updated.
-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] BIP 35: add mempool message

2012-08-16 Thread Jeff Garzik
On Thu, Aug 16, 2012 at 1:56 PM, Pieter Wuille pieter.wui...@gmail.com wrote:
 I suppose it is interesting in general for nodes to
 get a memory pool refill at startup anyway.

Yes.

An inv message is always returned, even if empty.

 I'm not sure about this last. What is it good for? inv packets can always be
 sent, even not in response to others, so it is not that this gives you an
 acknowledgement the mempool is updated?

A simple guarantee of 1:1 correspondence between request and response.
 The bitcoin protocol sometimes simply elides a response when the
response would be empty, and this makes it difficult to know whether a
request is timing out or already processed.

Sending a ping(nonce) after each P2P command is another way of achieving same :)

 This seems safe, although it forces other full implementations that want to
 expose protocol version 60002 (or later) to also implement this. What do they
 think about this?

 I would like to suggest to allocate an extra service bit for this. We still
 have 63 left, and this is a well-defined and useful extra service that was
 not yet provided by any earlier node. Doing that would also mean that
 mempool-providing survices may be discovered before connecting to them, as
 the service bits are carried around in addr messages. Any opinions about that?

An nServices bit would be a better fit for this optional service, but
nServices bits seemed like a scarce resource, so I elected to be
conservative.

Absent the scarce-resource concern, I'd vote for an nServices bit.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] BIP 35: add mempool message

2012-08-16 Thread Jeff Garzik
On MSG_MEMTX:  The current version has a much higher Just Works value.

On empty inv:  It is generally better to do something
unconditionally, than have a response generated only under certain
conditions.

And Alan is correct to note that unknown messages are ignored
(intentionally, for expansion).  However, unconditionally returning a
response has little to do with feature probing/discovery.  It is
simply a clear, deterministic indication that processing is complete,
for each invocation.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] BIP 35: add mempool message

2012-08-17 Thread Jeff Garzik
On Fri, Aug 17, 2012 at 9:40 AM, Pieter Wuille pieter.wui...@gmail.com wrote:
 On Thu, Aug 16, 2012 at 05:05:58PM -0400, Jeff Garzik wrote:
 On MSG_MEMTX:  The current version has a much higher Just Works value.

 On empty inv:  It is generally better to do something
 unconditionally, than have a response generated only under certain
 conditions.

 And Alan is correct to note that unknown messages are ignored
 (intentionally, for expansion).  However, unconditionally returning a
 response has little to do with feature probing/discovery.  It is
 simply a clear, deterministic indication that processing is complete,
 for each invocation.

 I disagree. Returning an empty inv is a very strange way of replying
 empty mempool. Bitcoin P2P is not a request-response protocol, and
 inv messages are sent where there are inventory items to send. The
 reaction to a request (for example getblocks) can be nothing, or one
 or more inv messages if necessary. Special casing an empty inv to
 mean empty mempool is trying to hack a request-response system on top
 of the asynchronous system.

OK, just updated 'mempool' branch to not return inv if mempool is empty.


 If there is need for confirming the transmission of the mempool is
 complete, the proposal to use a MSG_MEMTX sounds good to me. No client
 will ever receive such an inv without requesting the mempool, and
 implementing handling MSG_MEMTX is trivial.

MSG_MEMTX is not a good idea for this use case.  Just sent a ping(nonce).

Bitcoin P2P processes requests in-order, and responds accordingly.
The remote end may insert asynchronous messages into the response
stream, certainly, but responses to queries are processed and returned
in-order.  A 'getdata' response is fully sent before a 'ping' response
is sent, etc.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Atomic coin swapping?

2012-09-22 Thread Jeff Garzik
Forum URL: https://bitcointalk.org/index.php?topic=112007.0

gmaxwell was talking about colored coins[1] in IRC recently.  They are
potentially interesting in the context of distributed bonds[2], which
I am currently pursuing with pybond[3].

Here is the problem I am trying to solve, does the crowd have an answer?

1. Alice transfers a 1-satoshi colored coin to Bob.
2. Bob transfers 100 BTC to Alice.  May be restricted to 1 txout, if
that eases implementation details.
3. Steps #1 and #2 happen as an atomic unit, all-or-none.
4. Alice and Bob must both approve this atomic transfer of coins, with
appropriate signatures.

Is this possible within the current bitcoin system?  As far as I can
see, the answer is no but maybe I'm missing something.

My best guess to the answer is possible, but requires a new SIGHASH_* type?

[1] https://bitcointalk.org/index.php?topic=106449.0
[2] https://bitcointalk.org/index.php?topic=92421.0
[3] https://github.com/jgarzik/pybond

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Atomic coin swapping?

2012-09-22 Thread Jeff Garzik
On Sat, Sep 22, 2012 at 5:10 AM, Jorge Timón timon.elvi...@gmail.com wrote:
 I'm very interested in this. I was expecting transitive/multi-hop
 transactions (Ripple) with colored coins, and I don't understand why
 is not possible.

 From https://en.bitcoin.it/wiki/Contracts

 ---
 SIGHASH_ALL: This is the default. It indicates that everything about

Yes, SIGHASH_ALL was the crucial piece I was missing.

I have updated the post to add a concrete example with as much detail
as necessary for programmers to recreate.  Review requested:
https://bitcointalk.org/index.php?topic=112007.msg1212356#msg1212356

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Large backlog of transactions building up?

2012-09-23 Thread Jeff Garzik
On Sun, Sep 23, 2012 at 8:12 AM, Mike Hearn m...@plan99.net wrote:
 Has anyone got long term longs that contain the pool size and timestamps?

 Unfortunately I forgot to enable timestamps in the logs for my own
 nodes (the privacy benefit of disabling this by default is
 questionable, imho). But just looking at the general trends and
 cross-checking against my own memory it definitely seems that there
 are more and more pending transactions that don't get cleared into
 blocks.

 One of my nodes now routinely has 4000 transactions in the mempool.
 Blocks typically clear only a few hundred at most, which is what you'd
 expect given current transaction rates (around 300 per ten minute
 interval). So what are the other pending transactions doing and why
 aren't they getting drained out of the mempool?

Yeah, my public nodes currently have 2200+  Over time, it gets
cluttered naturally due to the disconnect between what miners mine and
what relayers relay.

I've long argued that all mempool implementations should limit the
lifetime of any TX to a specific number of blocks.  Rationale:
- bitcoin clients retransmit until TX is confirmed
- provides a deterministic lifetime for a TX; if you KNOW a TX will
disappear 144 blocks (24 hours) after you stop transmitting, then it
is probably safe to initiate recovery procedures and perhaps revise
the transaction
- prevents zombie TXs from littering memory... they hang around,
wasting resources, but never get confirmed

No one has strenuously argued against this, so I suppose it is down to
writing a patch, and coming up with a good number we (as a network)
can agree upon.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://ad.doubleclick.net/clk;258768047;13503038;j?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Bitcoin Testing Project

2012-09-26 Thread Jeff Garzik
On Wed, Sep 26, 2012 at 12:06 PM, Mark Friedenbach m...@monetize.io wrote:
 Certainly developers should be responsible for making sure that regression
 tests for bugs they fix make it either into the unit tests or Matt's
 functional test repository. QA should hold them accountable for that
 (re-opening tickets for bugs that have been fixed but without regression
 tests).

As a goal or general principle, this is agreeable.

But slavish attention to this will only get ignored.  There is finite
developer resources, and regression tests for certain types of bugs,
like prickly P2P network interaction bugs or RPC API bugs, could
potentially involve many days or weeks of coding, to sufficiently
simulate the environment.  The ability to easily, automatically and
programmatically reproduce certain classes of bugs is simply out of
reach right now, and nobody is going to shut down development to fix
that problem.

We should move towards this direction, yes, but bitcoin test cases are
not always going to be as easy as writing (say) a compiler testcase.

We can always use the help of a few good QA coders:  simulating a P2P
environment and checking the RPC API are two examples of very
complicated problems that -can- be automated for testing... with a lot
of work.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Payment protocol thoughts

2012-10-02 Thread Jeff Garzik
On Tue, Oct 2, 2012 at 1:52 PM, Peter Vessenes pe...@coinlab.com wrote:
 This is small, but an interesting tidbit from BTC Foundation payments;
 roughly 3-5% of our initial members double-spent. WOW, that's terrible.

To be specific, do you mean

a) paid twice
 or
b) sent BF coins, then sent the same coins elsewhere
?

Double-spend is a specific technical term

--
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] performance testing for bitcoin

2012-10-03 Thread Jeff Garzik
On Wed, Oct 3, 2012 at 1:38 PM, Ian Miers imie...@jhu.edu wrote:
 Whats the best way to get performance numbers for modifications to bitcoin ?
 Profiling it while running on testnet might work, but that would take a
 rather long time to get data.
 Is there anyway to speed this up  if we only needed to provide  relative
 performance between tests. (in a sense a fast performance regression test).

You have to be specific about what you're measuring, because
performance is vague.

You can measure many aspects of blockchain performance by importing
blocks via -loadblock=FILE.

Other performance measurements like how fast does a block relay
through the network cannot be as easily measured.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] 0.7.1 release

2012-10-03 Thread Jeff Garzik
On Wed, Oct 3, 2012 at 1:49 PM, Gavin Andresen gavinandre...@gmail.com wrote:
 Add -reindex, to perform in-place reindexing of blockchain data
 files : https://github.com/bitcoin/bitcoin/pull/1870

Agree, though needs testing

 P2P: Do not request blocks from peers with fewer blocks than us :
 https://github.com/bitcoin/bitcoin/pull/1834

Agree

 Add new RPC lockunspent, to prevent spending of selected outputs :
 https://github.com/bitcoin/bitcoin/pull/1861

Agree, though sipa raised a valid issue.  lockunspent, like the
existing listunspent, is wallet based.

As raw transactions might spend outputs _not_ in the wallet,
lockunspent would miss those.

I think this is OK, because listunspent is already wallet-based, but
it should be noted.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] On bitcoin testing

2012-10-09 Thread Jeff Garzik
Copying from a response posted to Bitcoin software testing effort
https://bitcointalk.org/index.php?topic=117487.0 as it is relevant to
a recent thread here...

Any level of testing is useful and appreciated.  Various types of
testing that are helpful:

* it works testing:  Simply run the latest Release Candidate (or
latest version, if released).  Make sure all the basics work (for
whatever definition of basics you desire).  This is the level most
accessible to casual users.
* Major features testing:  Develop a short checklist of must-work
features, and organize volunteers to work together and go through that
checklist, item by item.  Test each major feature on each major
platform.
* Stress and fuzz testing:  Attempt to stress the system somehow, or
randomly corrupt bits of data.  See what breaks.
* Regression testing:  Record bugs fixed, and develop automated test
cases that successfully reproduce the bugs on older versions, and
verify newer versions remain fixed.
* Unit function testing:  Rigorously exercise each C++ class to ensure
it behaves as expected at a micro level.
* Full peer automated testing:  Automated testing of RPC and P2P
functions is non-existent, because of the difficulty in doing so.
Find a solution to this problem.
* Data-driven tests: If possible, write software-neutral, data-driven
tests.  This enables clients other than the reference one (Satoshi
client) to be tested.  Embed tests in testnet3 chain, if possible.


The community at large can be a big help simply by doing the first
item:  download and run the Release Candidates and the latest version,
and report any problems.  Even reporting success is fine by me, for
example: Version 0.7.1 works for me on Windows 7/32-bit posted on a
forum thread.

It is always very difficult to organize any sort of testing regime
with open source volunteers that come and go.  Each volunteer chooses
their level of involvement.  Any amount of testing and test-case
writing, large or small, is helpful to bitcoin.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] 0.7.1 release candidate 1 ready for testing

2012-10-11 Thread Jeff Garzik
On Thu, Oct 11, 2012 at 11:46 AM, Gavin Andresen
gavinandre...@gmail.com wrote:
 Any progress on a release candidate QA sanity testing plan?

Posted a call for testing in this forum thread,
https://bitcointalk.org/index.php?topic=117487.0

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] 0.7.1 release candidate 1 ready for testing

2012-10-11 Thread Jeff Garzik
On Thu, Oct 11, 2012 at 1:51 PM, Arklan Uth Oslin
arklan.uthos...@gmail.com wrote:
 i'll second the bitcoin test list.

As you like, but... bitcoin-devel is quite low traffic, so there is
not exactly an issue of crowding.  And a separate list means people
cannot chime in as easily.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Payment Protocol Proposal: Invoices/Payments/Receipts

2012-11-26 Thread Jeff Garzik
On Mon, Nov 26, 2012 at 5:37 PM, Gavin Andresen gavinandre...@gmail.com wrote:
 This is the next big lets all agree to do things the same way thing
 I think we should tackle. I'm particularly looking for feedback from
 other bitcoin client developers, even if it is just a quick looks
 reasonable, if everybody else is going to do it then I will
 (eventually) too...

Comments:

1) Payment message should include ability to specify the transaction
_or_ a transaction id sent via normal means over the network.

2) I think a significant bitcoin userbase will want to operate outside
the full root-CA chain.  Just look at https:// websites now.
Self-signed certs are quite common, because it is easier, while being
more secure than http://

So some provision for self-signed certs, a use case in wide use
elsewhere, or equivalent thereof, seems reasonable.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] RFC: Updating dust output definition, and default fees

2012-12-12 Thread Jeff Garzik
URL: https://github.com/bitcoin/bitcoin/pull/2100

1) Create COIN_DUST constant, to represent the dust spam limit used.

2) Decrease COIN_DUST to 0.001 BTC

Rationale: With the increase in bitcoin value (US$13.67 as of this
writing), it seems reasonable to reduce the value level of which we
consider dust spam.

3) Update TX miner and relay fee defaults to 0.001 / 0.0005 BTC respectively

Rationale: Reflects growth of dust spam in unspent transaction output dataset.

Review of impact:
a) Definition of COIN_DUST reduced from 0.01 to 0.001.
b) Miners who mine with this code will require a fee = 0.001 to
include TX's with outputs = COIN_DUST
c) Normal clients will require a fee = 0.0005 to relay TX's with
outputs = COIN_DUST

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Draft BIP for Bloom filtering

2013-01-10 Thread Jeff Garzik
On Thu, Jan 10, 2013 at 10:59 PM, Matt Corallo bitcoin-l...@bluematt.me wrote:
 Ive been missing lately, when is 0.8 targeted for freeze?

0.8rc1 will probably happen when the core ultraprune/leveldb stuff is stable.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal: make the private key for testnet genesis block public

2013-01-14 Thread Jeff Garzik
On Mon, Jan 14, 2013 at 5:44 AM, Peter Todd p...@petertodd.org wrote:
 Basically on testnet we should give people the chance to test how their
 code handles attempts to spend the genesis block coinbase, as well as
 other tx's made to the genesis block address. After all, potentially
 Satoshi is still out there, still has that key, and still may cause
 exactly that situation himself.

ACK

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Testnet DNS seed

2013-01-25 Thread Jeff Garzik
On Thu, Jan 24, 2013 at 2:01 AM, Peter Todd p...@petertodd.org wrote:
 Everything is running on a dedicated Amazon EC2 micro instance. Just
 IPv4 is supported right now as EC2 doesn't support IPv6; even tunnels
 are broken. I also haven't setup tor yet. I can do both if there is
 demand.

How long do you plan to run this?  Indefinitely [presuming there is
interest and users]?

 I guess the next step is to create a new strTestNetDNSSeed in the
 satoshi client, although it'd be better if at least one more person had

No objection

 a testnet seed to include in the list. Probably best to leave IRC
 enabled too.

Yes, IRC must remain enabled


 Also, FWIW, it looks like the pnSeed list is way out of date...

Yes.  Usually nanotube does the update when poked.  That can happen,
or something different.

A nice alternative might be a simple script that transforms Pieter's
seeds.txt into pnSeed[]



-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Testnet DNS seed

2013-01-27 Thread Jeff Garzik
On Sun, Jan 27, 2013 at 5:27 AM, Peter Todd p...@petertodd.org wrote:
 On Fri, Jan 25, 2013 at 09:23:28PM -0500, Jeff Garzik wrote:
 On Thu, Jan 24, 2013 at 2:01 AM, Peter Todd p...@petertodd.org wrote:
  Everything is running on a dedicated Amazon EC2 micro instance. Just
  IPv4 is supported right now as EC2 doesn't support IPv6; even tunnels
  are broken. I also haven't setup tor yet. I can do both if there is
  demand.

 How long do you plan to run this?  Indefinitely [presuming there is
 interest and users]?

 Indefinitely. It's a pretty cheap thing to run, about $7.5/month. If
 anyone else wants I can give them a machine image copy easily too.

Cool.  ACK on adding your seed to the ref client.

  Also, FWIW, it looks like the pnSeed list is way out of date...

 Yes.  Usually nanotube does the update when poked.  That can happen,
 or something different.

 A nice alternative might be a simple script that transforms Pieter's
 seeds.txt into pnSeed[]

 seed.txt? You mean the dumpfile produced by bitcoin-seeder? That has

Correct.

 uptime info, although only a months worth if I understand it correctly.

 pnSeed probably should be filtered with SORB's dynamic ip list or
 similar too, and additionally add an expiry time. (1 year?)

That's fine.  The main point was to create something scripted and
repeatable.  Then pnSeed[] becomes easier to maintain _and_ easier to
audit.  Right now it is a bit opaque with a list of hex constants.  A
script or makefile rule could do

 cd src
 ../contrib/gen-seeds.py  seeds.h

and seeds might look like

  #ifndef __SEEDS_AUTOGEN_H__ etc.

  unsigned int pnSeed[] = {
0xABCD1234, /* IP addr 12.34.56.78 */
  };

I think Satoshi liked them opaque and not easily searchable, so
printing the readable IP address in a comment may not be desired.
Anyway, that output would make updating the list more transparent and
easy to maintain.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] A bitcoin UDP P2P protocol extension

2013-03-23 Thread Jeff Garzik
On Sat, Mar 23, 2013 at 10:52 AM, Luke-Jr l...@dashjr.org wrote:
 On Saturday, March 23, 2013 10:42:26 AM Randy Willis wrote:
 Introducing super-nodes with thousands of connected peers can greatly help
 here.

 UDP is connectionless.
 I would hope any UDP bitcoin protocol doesn't try to emulate a connection. :/

It depends on the usage.  Simply broadcasting a TX or INV to a remote
peer does not require a connection, clearly...  but you probably want
to signal acceptance of those messages somehow.

But other uses, like subscribing to a broadcast, does require some
notion of an association.

In the rough draft, a parallel TCP connection with version/verack
sequence is required, and you may make use of it if a connection is
needed.

But that is just one approach.  A more robust, heavyweight UDP P2P
might be a hole-punching TCP alternative.  It's up to the community
and results of experimentation.

Bittorrent has evolved a full transfer protocol over UDP, to get
around firewalls and the like.
-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Upcoming network event: block v2 lock-in

2013-03-23 Thread Jeff Garzik
On Sat, Mar 23, 2013 at 1:43 PM, Luke-Jr l...@dashjr.org wrote:
 On Saturday, March 23, 2013 5:28:55 PM Jeff Garzik wrote:
 On Sat, Mar 23, 2013 at 1:09 PM, Luke-Jr l...@dashjr.org wrote:
  I don't think anyone is mining using bitcoind 0.7 or later?

 slush, BTC Guild, ozcoin too I think, several others.

 Not for producing coinbases (where BIP 34 is implemented).

Sure, that is largely the pool server layer.  But it is misleading to
imply that bitcoind is nowhere in the stack.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] A bitcoin UDP P2P protocol extension

2013-03-23 Thread Jeff Garzik
On Sat, Mar 23, 2013 at 9:22 PM, Gregory Maxwell gmaxw...@gmail.com wrote:
 In some ways SCTP is a pretty optimal transport for Bitcoin like messaging.

Darn near everything can be shoehorned into a message   So
absolutely agreed... in theory.  Been an SCTP fan for years.

Firewall practices tend to put a damper on cool new protocols like that, though.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] bitcoin pull requests

2013-04-02 Thread Jeff Garzik
On Tue, Apr 2, 2013 at 11:41 PM, Wladimir laa...@gmail.com wrote:
 Maybe now that bitcoin is growing out of the toy phase it's an idea to start
 gpg signing commits, like the Linux kernel
 (https://lwn.net/Articles/466468/).

 But I suppose then we can't use github anymore to merge as-is and need
 manual steps?

Correct, that rules out github, AFAICS.

Though, honestly, when I ACK that means I read the code, which is more
important than the author really.  github seems fine for that still,
though I do wonder if there is a race possible,

* sneak uploads innocent branch sneak/bitcoin.git #innocent
* sneak creates pull req
* just before I click pull, sneak rebases the branch to something evil

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] DOS-Attacks on bitcoin-client?

2013-04-07 Thread Jeff Garzik
BTW, check out the blockchain torrent, as one way of offloading some
of the download bandwidth used from the P2P network:

 Bitcoin blockchain data torrent
 https://bitcointalk.org/index.php?topic=145386.0

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] On-going data spam

2013-04-08 Thread Jeff Garzik
http://www.reddit.com/r/Bitcoin/comments/1bw9xg/data_in_the_blockchain_wikileaks/

TD petertodd: yeah somebody put a file upload tool into the chain
and then tried to upload the entire amibios source code to it. stupid.
TD someone thinks it's a lot more important than it really is
petertodd TD: and 2.5MB of wikileaks data, and a whole bunch of GPG
encrypted stuff, and the hidden wiki cp/jb sections (no idea if it's
all the same person)
petertodd jgarzik:
https://blockchain.info/address/3Dw3UB6VZ3a3ay5diDQVwUFXzKScJJLeVU
iirc this is gpg symmetric key encrypted
petertodd jgarzik: (I wrote a tool to download the tool to download data)
petertodd MC1984_: just checked, surprisingly no-one has put
*anything* into the litecoin chain at all, strings returns nothing

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis  visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] On-going data spam

2013-04-09 Thread Jeff Garzik
Well, I'm not fundamentally opposed to a blacklist, but it would have
to be done in a VERY open manner.  I do think the community would
agree that storing big data transactions is not the primary purpose of
bitcoin.

However, there should be some metrics and heuristics that take care of
this problem.  Notably the dev consensus (sans you, Mike :)) seems to
be that uneconomical outputs should be made non-standard.

Here is one approach:
Block uneconomic UTXO creation
https://github.com/bitcoin/bitcoin/pull/2351

I would like to see at least a stopgap solution to data spam in 0.8.2,
as it is a clear and present problem.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis  visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] On-going data spam

2013-04-09 Thread Jeff Garzik
On Tue, Apr 9, 2013 at 10:53 AM, Mike Hearn m...@plan99.net wrote:
 However, there should be some metrics and heuristics that take care of
 this problem.  Notably the dev consensus (sans you, Mike :)) seems to
 be that uneconomical outputs should be made non-standard.

 I think that patch is ok as it doesn't really have any fixed concept of what
 is uneconomical. But I haven't thought about it much. As Gavin says, there's
 an obvious backwards compatibility problem there. It should probably wait
 until the payment protocol work is done, so the major user of
 micropayments-as-messages  can migrate off them.

wait is only an option if there is an alternate solution already
coded and ready for 0.8.2.
-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis  visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Anti DoS for tx replacement

2013-04-18 Thread Jeff Garzik
On Fri, Apr 19, 2013 at 12:38 AM, John Dillon
john.dillon...@googlemail.com wrote:
 I understand that Gavin has spent effort on security efforts against
 small-scale attackers. It's the fact that he is so dismissive of the
 threat that large attackers play that is what bothers me. But if I am
 being divisive I understand.

I cannot speak for Gavin, but speaking more generally, large attackers
tend to belong in a thought-class all their own.

Example 1:  if some super-ASIC miner arises with 90% of hash power,
and he starts behaving in a way contrary to the useful functioning of
bitcoin, the community might decide to change the PoW algorithm at
block height N.

Example 2:  If someone large DDoS's the entire P2P network, which is
possible, manual intervention would be required to straighten out the
mess.

In each case, it's more about the community's mutual defense actions
than any prepared defense.

Speaking even more generally, bitcoin may be a billion-dollar
invention, but that doesn't mean it has any funding for network
defense!  Unless cost structures and user attitudes change,
development and deployment of major defense strategies seems unlikely.
 Which implies the community will simply wait for a [attack |
explosion | crisis], and then hope we can unwind/repair the damage
afterwards.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis  visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Fwd: Service bits for pruned nodes

2013-04-30 Thread Jeff Garzik
On Tue, Apr 30, 2013 at 12:14 PM, Rebroad (sourceforge)
rebroad+sourceforge@gmail.com wrote:
 As part of a roadmap for block downloading, I think this may be a good time
 to look into providing an HTTP/HTTPS protocol for block downloading - this
 would also allow web proxies to cache blocks and thus make it more
 accessible, as well as cater for resumeable downloads.

Speaking generally, I've always been a supporter of finding new and
creative ways to store and transmit blocks.  The more diversity, the
less likely bitcoin can be shut down worldwide.

HTTP is fine, but you run into many issues with large files.  You
would need a very well defined HTTP-retrievable layout, with proper
HTTP headers along the entire path, if you want web caches to function
properly.  You need HTTP byte range support, HTTP 1.1 keep-alives, and
other features for resuming large, interrupted downloads.

The format currently used by bitcoind would be just fine --
blocks/blk.dat for raw data, size-limited well below 1GB.  Just
need to add a small metadata download, and serve the raw block files.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with 2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Fwd: Service bits for pruned nodes

2013-04-30 Thread Jeff Garzik
On Tue, Apr 30, 2013 at 3:27 PM, Andy Parkins andypark...@gmail.com wrote:
 On Tuesday 30 April 2013 19:04:59 Jeff Garzik wrote:

 The format currently used by bitcoind would be just fine --
 blocks/blk.dat for raw data, size-limited well below 1GB.  Just
 need to add a small metadata download, and serve the raw block files.

 That doesn't seem very generic.  It's tied far too much to the current storage
 format of bitcoind.

Hardly.  The storage format is bitcoin protocol wire format, plus a
tiny header.  It is supported in multiple applications already, and is
the most efficient storage format for bitcoin protocol blocks.


 Wouldn't it be better to add support for more bitcoin-protocol-oriented HTTP
 requests?  Then any client can supply the same interface, rather than being
 forced to create blk.dat on the fly?

You don't have to create anything on the fly, if you store blocks in
their native P2P wire protocol format.

  http://bitcoind.example.com/block/BBB
  http://bitcoind.example.com/tx/
  http://bitcoind.example.com/block/oftx/TTT
  http://bitcoind.example.com/peers
  http://bitcoind.example.com/peer/nnn

 Essentially: block explorer's raw mode but in every bitcoind.  The hardest
 operation for light clients is finding out the block that contains a
 particular transaction -- something that bitcoind already knows.

This is a whole new client interface.  It's fun to dream this up, but
it is far outside the scope of an efficient HTTP protocol that
downloads blocks.

Your proposal is closer to a full P2P rewrite over HTTP (or a proxy thereof).

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with 2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Service bits for pruned nodes

2013-05-01 Thread Jeff Garzik
On Sun, Apr 28, 2013 at 11:51 AM, Pieter Wuille pieter.wui...@gmail.com wrote:
 Hello all,

 I think it is time to move forward with pruning nodes, i.e. nodes that fully
 validate and relay blocks and transactions, but which do not keep (all)
 historic blocks around, and thus cannot be queried for these.

 The biggest roadblock is making sure new and old nodes that start up are
 able to find nodes to synchronize from. To help them find peers, I would
 like to propose adding two extra service bits to the P2P protocol:
 * NODE_VALIDATE: relay and validate blocks and transactions, but is only
 guaranteed to answer getdata requests for (recently) relayed blocks and
 transactions, and mempool transactions.
 * NODE_BLOCKS_2016: can be queried for the last 2016 blocks, but without
 guarantee for relaying/validating new blocks and transactions.
 * NODE_NETWORK (which existed before) will imply NODE_VALIDATE and guarantee
 availability of all historic blocks.

In general, I support this, as anybody on IRC knows.

Though it does seem to open the question about snapshotting.

Personally, it seems important to enable running a fully validating
node, that may bootstrap from a UTXO snapshot + all blocks since that
snapshot.

NODE_BLOCKS_2016, in particular, is too short.  For users, I've seen
plenty of use cases in the field where you start a network sync after
a 2-week period.

Set a regular interval for creating a UTXO snapshot, say 3 months
(6*2016 blocks), and serve all blocks after that snapshot.  For older
nodes, they would contact an archive node or torrent for 3 month
blocks, and then download normally = 3 month blocks (if the archive
node didn't serve up to present day).

Where are we on nailing down a stable, hash-able UTXO serialization?

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with 2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Service bits for pruned nodes

2013-05-04 Thread Jeff Garzik
On Sat, May 4, 2013 at 2:07 PM, John Dillon
john.dillon...@googlemail.com wrote:
 After all Peter, just like you have implemented alternate block header
 distribution over twitter, in the future we should have many different means 
 of
 peer discovery. Right now we have DNS seeds, a fixed list, and IRC discovery
 that does not work because the servers it was pointed too no longer exist. Not
 a good place to be.

Let's not confuse bootstrapping with overall peer discovery.

Peer exchange between P2P nodes is the primary and best method of
obtaining free peers.

Obviously you need to bootstrap into that, though.  DNS seed and fixed
list are those bootstrap methods (IRC code was deleted), but are only
used to limp along until you can contact a real P2P node, at which
point peer discovery truly begins.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with 2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] merged mining hashcash bitcoin (Re: Coinbase TxOut Hashcash)

2013-05-13 Thread Jeff Garzik
On Mon, May 13, 2013 at 5:12 PM, Adam Back a...@cypherspace.org wrote:
 When you said destroy-via-miner-fee:


 Don't forget:  4. destroy-via-miner-fee, which is useful because it
 provides funding for a public service (bitcoin transaction
 verification).


 Is that directly possible?  Because the reward transaction has no source,
 and no fee?  Or can you put a 25BTC fee in the reward transaction in the
 coinbase?

When a transaction's input value exceeds its output value, the
remainder is the transaction fee.  The miner's reward for processing
transactions is the 25 BTC initial currency distribution + the sum of
all per-transaction fees.  A destroy-by-miner fee transaction is a
normal bitcoin transaction sent by any user, that might look like

Input 1: 1.0 BTC
Output 1: 0.5 BTC

(the miner fee is implicitly 0.5 BTC, paid to whomever mines the
transaction into a block)

Sadly the bitcoin protocol prevents zero-output,
give-it-all-to-the-miner transactions.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] merged mining hashcash bitcoin (Re: Coinbase TxOut Hashcash)

2013-05-14 Thread Jeff Garzik
On Tue, May 14, 2013 at 5:25 AM, Adam Back a...@cypherspace.org wrote:
 On Mon, May 13, 2013 at 06:00:27PM -0400, Jeff Garzik wrote:

 When a transaction's input value exceeds its output value, the
 remainder is the transaction fee.  The miner's reward for processing
 transactions is the 25 BTC initial currency distribution + the sum of
 all per-transaction fees.  A destroy-by-miner fee transaction is a
 normal bitcoin transaction sent by any user, that might look like

 Input 1: 1.0 BTC
 Output 1: 0.5 BTC

 (the miner fee is implicitly 0.5 BTC, paid to whomever mines the
 transaction into a block)

 Sadly the bitcoin protocol prevents zero-output,
 give-it-all-to-the-miner transactions.


 Well if it is a later transaction, not an integral part of the reward
 transaction (that is definitionally mined by being serialized into the
 coinbase), the user may elect to withhold the promised transaction
 give-to-miner, so thats not so good.

That evaluation largely depends on the needs of the service in question.

In my decentralized identity (SIN) example, you merely need to prove
to the cloud that you sacrificed some bitcoins to any-miner.  The
confirmed, in-chain, non-coinbase transaction becomes the root node
for off-chain identity data.

The penalty for the user withholding the sacrifice transaction is that
their SIN is not created.  That incentive may not exist in that way,
in another service.

 Or do you mean to say you could have (implicit reward 25BTC) and reward
 transaction .001 BTC to self and 24.999 BTC with existing bitcoin format and
 validation semantics?  That would be close enough to give-to-miner.  Also
 the output sum  0BTC limitation could be changed to = maybe... (just one
 well placed character :)

Just referring to a standard, fee-bearing, user-created bitcoin
transaction, where output_value  input_value.  The fee is paid to the
first miner who includes that transaction in a block, as part of the
protocol.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Service bits for pruned nodes

2013-05-16 Thread Jeff Garzik
On Thu, May 16, 2013 at 7:26 AM, Ricardo Filipe
ricardojdfil...@gmail.com wrote:
 We would only end up with few copies of the historic data if users
 could choose what parts of the blockchain to store. Simply store
 chunks randomly, according to users available space, and give priority
 to the N most recent chunks to have more replicas in the network.

 You don't need bittorrent specifically for a DHT, if publicity is a
 problem. There are many DHT proposals and implementations, and i bet
 one of them should be more suitable to the bitcoin network than
 bittorrent's.

That's just about the worst thing you could do for bitcoin.  DoS one
part of the DHT, you DoS the entire blockchain by breaking the chain.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] UUID to identify chains (payment protocol and elsewhere)

2013-05-20 Thread Jeff Garzik
On Mon, May 20, 2013 at 7:59 PM, Mark Friedenbach m...@monetize.io wrote:
 So as to remain reasonably compliant with RFC 4122, I recommend that we
 use Version 4 (random) UUIDs, with the random bits extracted from the
 double-SHA256 hash of the genesis block of the chain. (For colored
 coins, the colored coin definition transaction would be used instead,
 but I will address that in a separate proposal and will say just one
 thing about it: adopting this method for identifying chains/coins will
 greatly assist in adopting the payment protocol to colored coins.)

This proposal seems closer to Version 5 than Version 4, in spirit.
But given that useful content may be deduced from UUID, it is not
truly applicable to either.  A bitcoin-specific version 6, if you
will.


 And some example chain identifiers:

  mainnet:  UUID('6fe28c0a-b6f1-4372-81a6-a246ae63f74f')
  testnet3: UUID('43497fd7-f826-4571-88f4-a30fd9cec3ae')
  namecoin: UUID('70c7a9f0-a2fb-4d48-a635-a70d5b157c80')

Note that, as this example unintentionally implies, humans are going
to want a side-by-side mapping /anyway/, just to make it readable and
usable to humans.

Almost all useful multi-chain software will require a readable
shortname string anyway, the thing this proposal wishes to avoid.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Try New Relic Now  We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app,  servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] UUID to identify chains (payment protocol and elsewhere)

2013-05-22 Thread Jeff Garzik
On Wed, May 22, 2013 at 6:27 AM, Melvin Carvalho
melvincarva...@gmail.com wrote:
 Some out of band algo/hash could work so long as there was a one to one
 relationship between the described object and the UUID.  In this case the
 gensis block may not uniquely identify a coin.

What does this mean?  It seems extremely unlikely that two different
genesis blocks will have the same hash.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Try New Relic Now  We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app,  servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] UUID to identify chains (payment protocol and elsewhere)

2013-05-22 Thread Jeff Garzik
On Wed, May 22, 2013 at 10:12 AM, Melvin Carvalho
melvincarva...@gmail.com wrote:
 On 22 May 2013 16:07, Jeff Garzik jgar...@exmulti.com wrote:

 On Wed, May 22, 2013 at 6:27 AM, Melvin Carvalho
 melvincarva...@gmail.com wrote:
  Some out of band algo/hash could work so long as there was a one to one
  relationship between the described object and the UUID.  In this case
  the
  gensis block may not uniquely identify a coin.

 What does this mean?  It seems extremely unlikely that two different
 genesis blocks will have the same hash.


 Two coin ecosystems could have the same genesis block

That has really, really bad side effects.  The whole point of the
bitcoin consensus algorithm is to avoid situations like this.

We don't want to encourage that behavior with code.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Try New Relic Now  We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app,  servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] UUID to identify chains (payment protocol and elsewhere)

2013-05-22 Thread Jeff Garzik
On Wed, May 22, 2013 at 10:29 AM, Luke-Jr l...@dashjr.org wrote:
 In some cases, multiple currencies can use the same blockchain (not just the
 singular genesis block). This use case *is* something we want to encourage -
 no reason for people to make an entirely new blockchain if their altcoin fits
 within the scope of Bitcoin or another existing altchain.

OK, let me qualify.  Layers on top are one thing, but we really do not
want to support cases like the fork that leaves the genesis block
intact, and leaves the subsidy at 50.0 BTC forever.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
Try New Relic Now  We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app,  servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Changing PGP identities/keys

2013-05-23 Thread Jeff Garzik
As part of the process of moving to BitPay, I'll be switching to
jgar...@bitpay.com as a PGP identity, with brand new signing keys.

Here is a message, signed by jgar...@exmulti.com's key (the one listed
on bitcoin.org), proving they are the same person.

http://yyz.us/jgarzik-now-at-bitpay.txt
http://yyz.us/jgarzik-bitpay-pubkey.txt

If a couple people would run through this and verify that I am me, I
would appreciate it.  A sig check and IRC ack would be great.  Thanks!
 bitcoin.org will be updated after this.

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


Jeff Garzik's business identity and PGP information is:

pub  2048R/7ADCA079 2013-05-23 Jeff Garzik jgar...@bitpay.com
 Fingerprint=3710 4081 6275 9FC5 A429  6536 E7A5 8E33 7ADC A079

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)

iQIVAwUBUZ4ykNodwg8tvwyoAQImAg//WdYc4RpZDtLUGWGMXr4Jnme9gjLdmFr4
em1McXk7faHls/qbQOlKdi46mTm4E/RZ6SLE7wMQkPD5RD0ukx3zkkFznbAuBuw2
/wCmNP2Tt/PZI2x3e9gfdBL0WxVfDTczZtMEMhz0ovMm3MtfZ8Xv9GtK3go+4LXa
eX4OguGVsuh/iJ1fSgr9ObZM1RSC7d7niXDw7oK8St6+G9z/4JiAs7jSpG1/jkw1
hNqSwxXSL/N5rbccPNvR91jWL7s63MQbrjYSWADxJQ81vLwV6JbyANyc6HnkfrPY
s0LmqtGqO3qa3xikhde8Iw0urejgyLSSJXcYLak+3TgRZqXmqJWhCW5bwRmathht
Y7Aev1g5oUsrX1KfvSwc76U13C8lqCzi2ICmUt1r2nMDR74hi8rxsxlY/axqZ2nJ
v2wROiD1ecxBx6rWeSi6K6cl3Oa7jUMkAk0avlw8Ozg/cXDmWqDzqyrLVZNFlDni
FeoAbgoJ6AnKULVyMLjwHQqx4Dg7tFGFiVefkiNMsXijwhXE2IxiEK52yvBN1M06
UWwmwBIqFnUnCHN98UGbI4yT9favE2eqKAChvQo4TowaycCw5wNtI1zCkb+Uw40j
0l3TMCkrqIPJ+1EeQKusewgHk/knpeXuqDFei/04b2TILo1RaQLwwQMyZMILozki
81Zs1bizUuU=
=a02R
-END PGP SIGNATURE-

--
Try New Relic Now  We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app,  servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Implementing batch processing for -blocknotify

2013-05-31 Thread Jeff Garzik
On Fri, May 31, 2013 at 7:56 AM, Rune Kjær Svendsen runesv...@gmail.com wrote:
 Hello dear list

 I have an application that wants to keep up with new blocks as they come in.
 For that I can use the -blocknotify option with bitcoind, which will execute
 my application for each new block.

 The problem is that my app isn't necessarily quick enough to finish its work
 before a new block comes in and the app is executed again. This means the
 that bitcoind might keep executing my application even though the previous
 instance hasn't finished, and that's fairly inefficient resource-wise, as
 many instances of the application will be running simultaneously.

 I've discussed this with wumpus on bitcoin-dev, and we figured out a
 solution that might be better. It could replace -blocknotify or we could put
 it in a new function called -batchblocknotify

Similar to other suggestions in this thread,

If your -blocknotify execution is too slow, then create a solution
that simply queues work.  There is no need to add this code to
bitcoind itself.

Another solution is modifying pynode to directly listen to a trusted
node (bitcoind), and monitor blocks as they arrive and are announced.
That does not fix the problem of slow block processing on your side,
but is another way to implement -blocknotify-like behavior.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with 2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Implementing batch processing for -blocknotify

2013-05-31 Thread Jeff Garzik
On Fri, May 31, 2013 at 8:37 AM, Rune Kjær Svendsen runesv...@gmail.com wrote:
 I've thought about this as well. It just seems somewhat clunky to me. I'd
 really prefer having bitcoind put out messages in batches, if it's doable,
 that is.

 I'd run into a lot of concurrency issues, as far as I can see, where I can't
 be sure that the queue isn't written to while, for example, it is opened by
 the program that needs to process the queue items.

 What if a disk operation takes a long time to finish, and a two queue
 operations want to add to the queue simultaneously? This really brings
 forward all the horrors of concurrent programming.

This is not a compelling need to update bitcoind for this.

The vast majority of systems are currently capable of processing a
block, before another block arrives.

As for parallel processing, your what if has been a solved problem
for decade(s) now.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with 2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal: soft-fork to make anyone-can-spend outputs unspendable for 100 blocks

2013-06-04 Thread Jeff Garzik
On Tue, Jun 4, 2013 at 10:55 AM, John Dillon
john.dillon...@googlemail.com wrote:
 I'm one of the people experimenting in this area.  I've long argued
 that a zero-output transaction should be permitted -- 100% miner fee
 -- as an elegant proof of sacrifice.  Unfortunately that requires a
 hard fork.  Also, for most people, it seems likely that a change
 transaction would be generated.  That, then, would generate an
 already-standard transaction, where inputs  outputs.

 100% miner fee is not a proof of anything because the miner could have created
 that transaction for themselves. You must have proof that all miners had an
 equal opportunity at collecting the fee, and the only way to do that is by
 Peter's announce-commit protocol, or his unspendable until after n blocks
 proposal.

Absolutely.  It wholly depends on the security model, and
economic-incentives model.  Some use models simply don't care if the
miner created a transaction that gave the fee to themselves.  It might
even be /encouraged/ to do this!  Sure they are paying themselves, but
given bitcoin network difficulty is so high, simply obtaining
payments-go-myself-as-miner transactions is itself difficult.
Producing an identity (my goal) or whatever is just fine, and in such
case becomes simply an additional block reward -- an additional
incentive to buy into this identity creation/management system.

Or exchange identity with another token, for another data service of
your choice.

This is no longer a strict proof of sacrifice system, if such
behavior is encouraged, but it is nonetheless valid.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal: soft-fork to make anyone-can-spend outputs unspendable for 100 blocks

2013-06-04 Thread Jeff Garzik
On Tue, Jun 4, 2013 at 2:36 PM, Roy Badami r...@gnomon.org.uk wrote:
 Sure they are paying themselves, but given bitcoin network
 difficulty is uso high, simply obtaining payments-go-myself-as-miner
 transactions is itself difficult.

 Not for pool operators it isn't.  Nor for people buying hashing power
 from a GPUMAX-type service, if such services still exist (or should
 they exist again in future).

Re-read what I wrote.  That's perfectly OK.  It is analogous to a pool
operator receiving merged mined coins, each time they mine a bitcoin
block.

If you achieve the very high difficulty needed to create a valid
bitcoin block, you have achieved a very high bar.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Decentralizing mining

2013-06-17 Thread Jeff Garzik
On Fri, Jun 14, 2013 at 4:06 PM, Peter Todd p...@petertodd.org wrote:
 It strikes me that this would work best if the pool has a mempool with
 child-pays-for-parent support where conflicts *are* allowed.

 IE you record whatever transactions you know about, conflicting or not,
 calculate which ones gives you the most fees/kb, and then figure out
 which set of non-conflicting ones are optimal. Of course, optimal is
 the knapsack problem...

 Now you can easilly tell the miners working on shares for you which tx's
 would be optimal if they wish to know, and at the same time whatever
 shares they send you are most likely to include transactions in your
 mempool inventory, and thus they can send just tx hashes to reduce
 bandwidth.


 Part of the broader issue that when we send peers INV advertisements we
 should be telling them what the fee/kb is so our peers can prioritize
 properly. That'd also help for the case where you want to broadcast two
 transactions in a row, but the pair is only profitable because the
 second is paying the fee for the first.

Interesting proposals, particularly this last.  The net result impact
is, however, that which was criticized in at least one forum thread:
replace-with-higher-fee.


 Speaking of, the way we tell peers about new blocks is really
 suboptimal: we tell every peer, in no particular order, about a new
 block via a block INV message, and then we give them the new block in
 parallel. I was looking through comp-sci papers on optimal
 flood-fill/gossip algorithms for random graph networks and it appears
 that optimal is to spend all your bandwidth to send the message to your
 fastest peer first, followed by your next fastest and so on. This works
 best because you get the exponential growth scaling faster by
 propagating the message as deep as possible in the network, and it
 then can flood outwards from there. Just sorting the peer list by
 #inv-recevied/time when doing INV pushes and when attending to incoming
 messages would probably be a big improvement.

In terms of packet size, I would like to look into the network-wide
costs of simply broadcasting block header + coinbase TX + TX list.  I
bet miners would love to opt into that.


  If the share does meet difficulty, hand it to both the pool and the
  local bitcoind. Should hand it to the pool first though, because the
  pool likely has the fastest block propagation, then hand it to local
  bitcoind. An optimized version may want to have some record of measured
  bandwidth - this applies Bitcoin in general too, although also has other
  issues.

 Currently, BFGMiner is doing submission to the pool, waiting for a response,
 then submitting to a local bitcoind. This is because the pool might need to
 receive/record the share before it processes the block on bitcoind, or you
 could lose credit for it. The response from the pool is rather small (a 
 single
 TCP packet), so this shouldn't delay much longer.

 Right, I guess the pool wants to be sure you were actually the one who
 found the share, rather than just someone who was lucky enough to see it
 on the network and submitted it as your own.

  ## Reducing bandwidth
 
  How about for normal shares we just pass the block header, and have the
  pool randomly pick a subset of transactions to audit? Any fraud cancels
  the users shares. This will work best in conjunction with a UTXO proof
  tree to prove fees, or by just picking whole shares randomly to audit.

 Might as well just use higher difficulty shares (each one audited) for the
 same effect. Block proposals allow the miner to tell the pool its transaction
 set once (per txset change) for any number of shares.

 That's a good point - the current practice most pools seem to follow of
 about a share per second seems very excessive to me. On the other hand,
 it does have good user optics. The right solution might be something
 akin to P2Pool where the UI level is telling the user shares are being
 found so it's clear stuff is happening, but under the hood only a
 small subset are ever sent to the pool.

With the onslaught of ASIC mining, most big pools are past a share per
second.  Variable difficulty or set-to-higher-difficulty quickly
became the norm, almost out of necessity.

Personally, I think most pools should target at _least_ 5-10 seconds
per share, no matter the strength of the miner.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] bitcoind and C++ namespaces?

2013-06-22 Thread Jeff Garzik
Slowly warming to C++ namespaces.  How about starting small, and
wrapping most stuff inside a bitcoin namespace?  Bike shedding can be
done at any point; the main idea is to start small, and gain
experience.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal: MultiBit as default desktop client on bitcoin.org

2013-06-27 Thread Jeff Garzik
On Thu, Jun 27, 2013 at 1:10 PM, Jim jim...@fastmail.co.uk wrote:
 Hello Everybody,

 Over the last few months we have been steadily adding
 functionality to MultiBit including:
 + encrypted wallets
 + sign and verify message
 + stability improvements and bug fixes.

 As a result of these efforts I think MultiBit is now
 suitable for the entry level Bitcoin user. I propose
 that we put MultiBit as the default desktop client
 on the bitcoin.org Choose your wallet page.

 I think a typical new user comes to bitcoin.org from a
 google search or a Bitcoin news article. We want them to
 peruse the bitcoin.org site and try out a wallet. They
 should be able to get MultiBit up and running in a tea break.
 Then perhaps they get a colleague to send them some bitcoin
 from an Android phone by zapping a QR code.

This is definitely a great discussion to have.  Here are some initial,
unprioritized thoughts.  As an engineer, there is never a clear
answer, but a balance of costs and benefits.

Arguments in favor of moving away from Bitcoin-Qt/bitcoind for wallet services:
* Bitcoin-Qt is admittedly a very simple wallet.  I see it's core
strengths more as a P2P router for the public blockchain data.
* Wallet feature innovation moves more slowly than
Armory/bitcoinj/blockchain.info.
* Requires the full blockchain, which is resource-intensive versus SPV.

Arguments in favor of retaining Bitcoin-Qt/bitcoind default:
* More field experience, code review and testing on desktop than others
* Very real possibility of an overall net reduction of full nodes on P2P network

Arguments in favor of multibit default:
* Good user interface, perhaps more friendly for entry level users as
you describe
* Based on bitcoinj, which has field experience and a very large
installed base thanks to Bitcoin Wallet/Schildbach

Arguments against multibit default:
* Less testing, field experience on desktop

I'm sure others can come up with a few more.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] txtool: Advanced transaction building and fun

2013-07-03 Thread Jeff Garzik
URL: https://github.com/jgarzik/txtool

txtool is a command line tool written in node.js that interfaces with
Bitcoin-Qt/bitcoind, to automate or assist in building interesting,
unusual, complicated or just plain odd transactions.  The goal is to
demonstrate advanced bitcoin features, and make it easier for users to
experiment.  The intended audience has a basic awareness of how
bitcoin transactions look and work.

The theory of operation and full list of commands may be reviewed at
https://github.com/jgarzik/txtool/blob/master/README

Initially, two working examples are presented:
* Easy multi-signature transaction building:
https://github.com/jgarzik/txtool/blob/master/examples/multisig.txt
(similar to gmaxwell's P2SH multisig example)
* Passing around transactions (possibly multi-signature) for signing:
https://github.com/jgarzik/txtool/blob/master/examples/tx-signing.txt

Further examples such as decentralized crowdfunding and atomic coin
swapping* will be demonstrated soon.


* https://bitcointalk.org/index.php?topic=112007.msg1212356#msg1212356

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal: MultiBit as default desktop client on bitcoin.org

2013-07-09 Thread Jeff Garzik
On Tue, Jul 9, 2013 at 10:00 AM, Daniel F nanot...@gmail.com wrote:
 on 07/09/2013 06:56 AM Jim said the following:
 + it will bump up the MultiBit download from about 11MB to 30-40MB
 (I think). This drops the maximum copies of MultiBit the multibit.org
 server can deliver per day from around 90,000 to 30,000ish.
 The multibit.org server maxes out at 1 TB of bandwidth per day.

 You could host your downloads on sourceforge and achieve virtually
 unlimited capacity.

Indeed.  There is no reason to worry about download bandwidth these
days, for open source software downloads.

Move the downloads to a site where such worries do not exist.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Anti DoS for tx replacement

2013-07-18 Thread Jeff Garzik
On Thu, Jul 18, 2013 at 7:13 AM, Peter Todd p...@petertodd.org wrote:
 Note that with OP_DEPTH we can remove the small chance of the payee
 vanishing and putting the funds in limbo:

What are the costs, benefits, and risks associated with scripts no
longer being stateless, as OP_DEPTH would seem to introduce?

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] HTTP REST API for bitcoind

2013-07-22 Thread Jeff Garzik
URL: https://github.com/bitcoin/bitcoin/pull/2844

Adding an HTTP REST API for bitcoind has been occasionally tossed
about as a useful thing.  Such an API would essentially provide a
decentralized block explorer capability, enabling easy external access
to transaction/address/block indices that we maintain.

The first two implemented API calls are simple, returning a block or
TX given a simple query string based on block hash, e.g.

 GET /rest/tx/TX-HASH
or
 GET /rest/block/BLOCK-HASH

This can be easily accessed via command line cURL/wget utilities.
Output formats -- binary, hex or json -- may be selected via a
bitcoin-format header.

The general goal of the HTTP REST interface is to access
unauthenticated, public blockchain information.  There is no plan to
add wallet interfacing/manipulation via this API.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Linux packaging letter

2013-07-24 Thread Jeff Garzik
On Wed, Jul 24, 2013 at 4:28 AM, Mike Hearn m...@plan99.net wrote:
 Yeah, if anyone wants to make the letter more digestable please do propose
 an alternative, although by this point it's probably not worth it as people
 have already signed.

I'm working on a more digestable alternative:
https://gist.github.com/jgarzik/6065679

Should be ready in another ~24 hours, as its obviously incomplete
right now.  Alas the publishing of the lame version (which yes, I did
ACK) didn't give me time to finish my version.

I worked on Fedora packaging while at Red Hat, so hopefully, I have a
bit of insight here.  Was also thinking about publishing this on
opensource.com.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Tor and Bitcoin

2013-07-30 Thread Jeff Garzik
On Tue, Jul 30, 2013 at 8:41 AM, Mike Hearn m...@plan99.net wrote:
 * Talk the Tor protocol directly and have the app explicitly pick its own
 diverse set of exit nodes, one per p2p connection. This is likely to be
 complicated. Last time I looked Tor doesn't provide any kind of library or
 API.

This has been discussed on IRC, and would be interesting to explore.
For several applications, linking directly with a Tor library is far
superior to the fragility of requiring a properly configured external
process.  Lacking such a Tor library right now, one must be written
hint hint

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] SPV client in pure JavaScript?

2013-08-09 Thread Jeff Garzik
On Fri, Aug 9, 2013 at 1:58 PM, Wendell w...@grabhive.com wrote:
 No, it's not -- but that's certainly very cool to see Jeff.

 How is BitPay going to put this to use?

Well, wally is just a demo application, a command line client to
prove a technology.

The main development is in places like node-libcoin, where a wallet
platform is being developed.  While maintaining a strong commitment to
the blockchain engine side of bitcoind, BitPay has enterprise wallet
needs that do not necessarily mesh well with the standard bitcoind
wallet.  Multi-sig, P2SH and other advanced features are key to the
future use of bitcoin in large enterprises.  Managers, CEOs and other
functionaries at a corporation may each have their own wallets /
keyrings, and cooperate to sign large value, high security bitcoin
multi-sig transactions, for example.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with 2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Combining bloom filters?

2013-08-17 Thread Jeff Garzik
Consider wallet A builds bloom filter A' and wallet B builds bloom
filter B'.  Can A' and B' be or'd together to form a single bloom
filter C' ?

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with 2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Gavin's post-0.9 TODO list...

2013-08-17 Thread Jeff Garzik
On Sat, Aug 17, 2013 at 8:35 AM, Mike Hearn m...@plan99.net wrote:
 There shouldn't be a smaller subset of Bloom filtering nodes because the
 idea of making it optional is a stupid one.

 If you're worried about DoS, come up with real fixes instead of trying to
 break features that work.

It is not just abstract worry.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with 2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Proposal: remove getwork RPC from bitcoind

2013-08-19 Thread Jeff Garzik
Pull request https://github.com/bitcoin/bitcoin/pull/2905 proposes to
remove getwork RPC from bitcoind: https://en.bitcoin.it/wiki/Getwork

On mainnet, almost everybody uses a pool (and therefore, not getwork
directly to bitcoind).  Those few who solo mine use a pool server to
talk to bitcoind via getblocktemplate or other means.  Tests show
that attempts to solo mine on mainnet via getwork lead to delays and
problems.

On testnet, getwork has a better chance of continuing to work.
Nevertheless, the same tools (open source pool servers or p2pool) are
available for testnet, obviating the continued need to support
getwork.

However, at one time, getwork to bitcoind was widely used.  I wanted
to poke the audience, to gauge response to removing getwork.  If a
driving use case remains of which we're unaware, speak up, please.  We
don't want to break anybody needlessly.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal: remove getwork RPC from bitcoind

2013-08-19 Thread Jeff Garzik
On Mon, Aug 19, 2013 at 4:33 PM, Warren Togami Jr. wtog...@gmail.com wrote:
 FWIW, Litecoin 0.8.x entirely removed the internal miner and we warned
 people that getwork will be removed in the next major version.  Pooler's CPU
 minerd which supports both sha256d and scrypt recently grew stratum support.
 Perhaps he could be convinced to add GBT support too, which would help this
 goal of completely removing the internal miner and getwork.

The internal miner is still actively used for testnet, here.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Proposal: remove getwork RPC from bitcoind

2013-08-22 Thread Jeff Garzik
On Thu, Aug 22, 2013 at 5:36 AM, Maciej Trebacz mac...@bitalo.com wrote:
 Will removing getwork from the client impact the setgenerate RPC call?
 I.e. would you still be able to generate coins on testnet-in-a-box this way,
 or would you need a dedicated miner for that? testnet-in-a-box is very
 useful for testing and easy to setup, it would be great if it stays that way

Yes, that is currently being discussed in a separate pull request.  My
pull request does not impact setgenerate, but an added proposal does
remove the internal miner completely.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Blockchain archival

2013-09-07 Thread Jeff Garzik
 during
 working hours) that to their desktop it was over 9 days before it had
 caught up.

 If all I was d/loading were the transactions since the last difficulty
 change (as one example of a fixed point), and the remaining balance on
 any not-discarded address as at that point it would have been much much
 quicker, and not be shagging my shiny new hard drive.

 There's more but it's 4.45 in the morning, and I cant think coherently
 until after a few hours kip and some good coffee :)

 Rob

 --
 Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
 Discover the easy way to master current and previous Microsoft technologies
 and advance your career. Get an incredible 1,500+ hours of step-by-step
 tutorial videos with LearnDevNow. Subscribe today and save!
 http://pubads.g.doubleclick.net/gampad/clk?id=58041391iu=/4140/ostg.clktrk
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development



-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] New Output Script Type

2013-09-13 Thread Jeff Garzik
See https://github.com/bitcoin/bitcoin/pull/2738

On Fri, Sep 13, 2013 at 8:51 PM, Turkey Breast turkeybre...@yahoo.com wrote:
 http://www.proofofexistence.com/

 and

 https://github.com/spesmilo/sx/blob/master/src/sx-embed-addr

 Embedding data in the blockchain as a hash is out there and a reality.

 I suggest that there should be a new payment type that is unspendable to
 support this.
 Like you have pubkey_hash, pubkey, script_hash, ..., embed_hash

 Maybe just a script with a single 20 byte push data.

 Advantages:

 * Optimisation possibilities (you know this can't be spent, and the script
 can't be processed).
 * Avoid indexing in an address database Bitcoin addresses which are
 currently being
 used to index data. They will never be spent, yet they will be indexed
 because they look
 identical to normal Bitcoin addresses.

 By separating this class of Bitcoin usage, we can improve the core Bitcoin
 payments system.


 --
 How ServiceNow helps IT people transform IT departments:
 1. Consolidate legacy IT systems to a single system of record for IT
 2. Standardize and globalize service processes across IT
 3. Implement zero-touch automation to replace manual, redundant tasks
 http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development




-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] the XBT

2013-09-18 Thread Jeff Garzik
On Wed, Sep 18, 2013 at 5:16 AM, Johnathan Corgan
johnat...@corganlabs.com wrote:
 My understanding is that XBT is a proposed standard, and hasn't been
 approved by ISO yet.  Did that change?

No.

 Jeff

--
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Payment Protocol: BIP 70, 71, 72

2013-09-25 Thread Jeff Garzik
On Wed, Sep 25, 2013 at 6:28 AM, Andreas Schildbach
andr...@schildbach.de wrote:
 As soon as there is a BIP70 implementation, I will begin playing with
 putting the payment request directly into the QR code.

You may test with Bitcoin-QT right now.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Payment Protocol: BIP 70, 71, 72

2013-09-25 Thread Jeff Garzik
BitPay experimented with QR codes in low light, restaurant and other
conditions.  QR codes become difficult to use even at 100 chars.

On the merchant side, we prefer a short URL that speaks payment
protocol if visited via bitcoin client, but will gracefully work if
scanned by a phone with zero bitcoin support -- you will simply be
redirected to a BitPay invoice page for a normal browser.



On Wed, Sep 25, 2013 at 7:59 AM, Andreas Schildbach
andr...@schildbach.de wrote:
 On 09/25/2013 01:45 PM, Mike Hearn wrote:

 OK, it might fit if you don't use any of the features the protocol
 provides :)

 Now you're dver-dramaticing (-:

 I'm just skipping one feature which I think is useless for QR codes
 scanned in person.

 You can try it here:

 Thanks. A typical request would be around 60 bytes, which should produce
 an URL with around 100 chars. That should be fine for scanning, but I
 will experiment.

 If you're thinking about governments and so on subverting CA's, then
 there is a plan for handling that (outside the Bitcoin world) called
 certificate transparency which is being implemented now.

 Good to hear. Let's see if it gets momentum.

 Now when you are getting a QR code from the web, it's already being
 served over HTTPS. So if you're up against an attacker who can break a
 CA in order to steal your money, then you already lose, the QRcode
 itself as MITMd.

 Sure. I was talking about QR codes scanned in person.

 In the Bluetooth case we might have to keep the address around and use
 it to do ECDHE or something like that.

 Yeah, will look at that as soon as we're implementing the payment
 protocol fully.



 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development



-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] bitcoind stops responding

2013-09-30 Thread Jeff Garzik
Can you please describe more than RPC stops working?  What is your
precise RPC usage?  getwork?  getblocktemplate?  other calls?  What is
your OS?


On Mon, Sep 30, 2013 at 10:44 PM, slush sl...@centrum.cz wrote:
 Hi,

 during several weeks I'm observing more and more frequent issues with
 bitcoind. The problem is that bitcoind stops responding to RPC calls, but
 there's no other suspicious activity in bitcoind log, CPU usage is low, disk
 I/O is standard etc.

 I observed this problem with version 0.8.2, but it is still happening with
 0.8.5. Originally this happen just one or twice per day. Today my monitoring
 scripts restarted bitcoind more than 30x, which sounds alarming. This happen
 on various backends, so it isn't a problem of one specific node. Is there
 anybody else who's observing similar problem?

 Thanks,
 slush

 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
 from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development




-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] bitcoind stops responding

2013-10-01 Thread Jeff Garzik
 : 0.16
 locktime : 0.01 calltime : 0.000359 totaltime : 0.000360
 locktime : 0.00 calltime : 0.000265 totaltime : 0.000265
 locktime : 0.00 calltime : 0.17 totaltime : 0.17
 locktime : 0.01 calltime : 0.000488 totaltime : 0.000489
 locktime : 0.00 calltime : 0.000226 totaltime : 0.000226
 locktime : 0.00 calltime : 0.25 totaltime : 0.25
 locktime : 0.00 calltime : 0.000369 totaltime : 0.000369
 locktime : 0.00 calltime : 0.000262 totaltime : 0.000262
 locktime : 0.00 calltime : 0.17 totaltime : 0.17
 locktime : 0.00 calltime : 0.000459 totaltime : 0.000459
 locktime : 0.00 calltime : 0.000260 totaltime : 0.000260
 locktime : 0.00 calltime : 0.17 totaltime : 0.17
 locktime : 0.00 calltime : 0.000330 totaltime : 0.000330
 locktime : 0.00 calltime : 0.000223 totaltime : 0.000223
 locktime : 0.00 calltime : 0.14 totaltime : 0.14
 locktime : 0.01 calltime : 0.000449 totaltime : 0.000450
 locktime : 0.01 calltime : 0.000248 totaltime : 0.000249
 locktime : 0.00 calltime : 0.17 totaltime : 0.17
 locktime : 0.00 calltime : 0.000327 totaltime : 0.000327
 locktime : 0.00 calltime : 0.000196 totaltime : 0.000196
 locktime : 0.00 calltime : 0.16 totaltime : 0.16
 locktime : 0.121170 calltime : 0.000408 totaltime : 0.121578
 locktime : 0.004912 calltime : 0.000278 totaltime : 0.005190
 locktime : 0.00 calltime : 0.16 totaltime : 0.16
 locktime : 5.996820 calltime : 0.000328 totaltime : 5.997148



 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development



-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] bitcoind stops responding

2013-10-04 Thread Jeff Garzik
On Fri, Oct 4, 2013 at 2:22 AM, Gavin Andresen gavinandre...@gmail.com wrote:
 RE: running into the maximum-of-4-keepalive-requests : simple workaround is
 to run with -rpcthreads=11 (or however many keepalive connections you need
 to support).  I agree that the rpc code should be smarter; making the last
 rpc thread ignore keepalive and always disconnecting should be a fairly
 simple patch, and patches welcome.

It's all still working around a problem unchanged since Satoshi wrote
it:  the HTTP server code paths use blocking I/O.

Amusingly, we do this through an async I/O library, which helps
facilitate SSL, but all our connections and operations are blocking.

That's why RPC was multi-threaded in part:  to work around the ugly
blocking nature of the code.  At least with multiple threads, one
thread will not stall another even if the network stalls (or a
software bug triggers a stall etc.)

Hopefully I can dive into the code and make is truly async I/O.  It
takes some work, and I'm happy if someone else steals the task, but
that's what really needs to be done.

I tried the multi-threaded approach, writing an entire boost::asio
skeleton JSON-RPC HTTP server: https://github.com/jgarzik/rpcsrv
This is working, tested code that uses boost::asio properly.  It's
also quite a bit of LOC, and a bit messy to boot (four LOC per boost
async action and incomprehensible compiler errors in return for proper
async+MT).

A single thread with async I/O is likely sufficient for even heavy
uses of RPC -- since today it all goes through a big lock anyway.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Revisiting the BIPS process, a proposal

2013-10-21 Thread Jeff Garzik
Continuing.  (grumble gmail grumble)

As with the IETF, there will be a great many drafts that do not make
it to BIPS status.  That is normal, and a sign of a healthy process.

I'll volunteer as the BIPS editor.

There needs to be some backups with commit access to bips.git, in case
the BIPS editor is hit by a bus or goes crazy or on vacation.  This
can be some core devs, but I would like at least one or two folks who
are not Satoshi-client devs on the list.  Maybe Andreas, Michael G,
Alan R, and others working on non-Satoshi clients.

-- 
Jeff Garzik
Senior Software Engineer and open source evangelist
BitPay, Inc.  https://bitpay.com/

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135031iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


  1   2   3   >