Re: [Bitcoin-development] Feedback requested: reject p2p message

2013-10-27 Thread Mike Hearn
Yeah, something like HTTP would work well.

I'm really looking forward to this. Currently bitcoinj gets a small but
steady stream of bug reports of the form my transaction did not
propagate. It's flaky because the library picks one peer to send the
transaction to, and then watches it propagate across the network. But if
that selected peer refuses the tx for whatever reason, that propagation
never comes, and there's currently no timeout to make it retry with a
different node. The transactions as created usually look fine, so it's not
clear to me why some nodes would accept it others wouldn't given the
absence of double spends, and there's no way to debug and find out :(




On Sat, Oct 26, 2013 at 6:32 AM, kjj bitcoin-de...@jerviss.org wrote:

 The HTTP status code system seems to work well enough, and seems to give
 the best of both worlds.  A 3 digit numeric code that is
 machine-readable, and a freeform text note for humans.

 The clever part about that system was in realizing that the numeric
 codes didn't need to account for every possible error. They just need to
 give the other node the most useful information, like try that again
 later, I'm having a temporary problem vs. That is just plain wrong and
 it will still be wrong next time too, so don't bother to retry.

 We can leave it to the humans to puzzle out the meaning of 403: values
 of txid gives rise to dom!

 Gavin wrote:
 
  On Oct 26, 2013, at 11:01 AM, Jean-Paul Kogelman 
 jeanpaulkogel...@me.com wrote:
 
  Would it make sense to use either fixed length strings or maybe even
 enums?
  No. Enums or fixed length strings just make it harder to extend, for no
 benefit (bandwidth of 'reject' messages doesn't matter, they will be rare
 and are not relayed).
 
 
 
 --
  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=60135991iu=/4140/ostg.clktrk
  ___
  Bitcoin-development mailing list
  Bitcoin-development@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/bitcoin-development



 --
 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=60135991iu=/4140/ostg.clktrk
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development

--
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=60135991iu=/4140/ostg.clktrk___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Feedback requested: reject p2p message

2013-10-27 Thread Luke-Jr
On Sunday, October 27, 2013 2:32:57 PM Mike Hearn wrote:
 Currently bitcoinj gets a small but steady stream of bug reports of the form
 my transaction did not propagate. It's flaky because the library picks one
 peer to send the transaction to, and then watches it propagate across the
 network. But if that selected peer refuses the tx for whatever reason, that
 propagation never comes, and there's currently no timeout to make it retry
 with a different node.

Sounds like the real bug is BitcoinJ relies on good/servant behaviour from 
other nodes. Don't assume your random node isn't hostile. Handling a peer 
that doesn't relay your transaction for any reason (including if they lie to 
you about having done so) should be expected behaviour.

Luke

--
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=60135991iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Feedback requested: reject p2p message

2013-10-27 Thread Mike Hearn
These nodes are much more likely to just be broken than malicious, but
without any way to diagnose why they are dropping a transaction it's hard
to find out what's really going on.

Anyway, yes, I need to spend time adding timeouts and all kinds of other
things, although of course if the transactions are being rejected due to a
change in network rules that won't help either - if the nodes you're
connected to are silently eating your transaction, there's no sane UI that
can result from that without more explicit error handling.


On Sun, Oct 27, 2013 at 3:39 PM, Luke-Jr l...@dashjr.org wrote:

 On Sunday, October 27, 2013 2:32:57 PM Mike Hearn wrote:
  Currently bitcoinj gets a small but steady stream of bug reports of the
 form
  my transaction did not propagate. It's flaky because the library picks
 one
  peer to send the transaction to, and then watches it propagate across the
  network. But if that selected peer refuses the tx for whatever reason,
 that
  propagation never comes, and there's currently no timeout to make it
 retry
  with a different node.

 Sounds like the real bug is BitcoinJ relies on good/servant behaviour from
 other nodes. Don't assume your random node isn't hostile. Handling a peer
 that doesn't relay your transaction for any reason (including if they lie
 to
 you about having done so) should be expected behaviour.

 Luke

--
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=60135991iu=/4140/ostg.clktrk___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Advisory: PHP library Bitcoin SCI weak key generation

2013-10-27 Thread Gavin Andresen
Thanks for the warning; to be clear, the Bitcoin SCI library is this
project?
  http://bitfreak.info/index.php?page=toolst=bitsci


On Mon, Oct 28, 2013 at 8:25 AM, Andres Home a86...@outlook.com wrote:

 For those developers who are using the Bitcoin SCI library (maybe others
 too, I
 found two total and could only make contact with one), I would advise that
 you
 review how your software handles private key creation.



 --

--
Gavin Andresen
--
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=60135991iu=/4140/ostg.clktrk___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Advisory: PHP library Bitcoin SCI weak key generation

2013-10-27 Thread Andres Home
That's correct. 

There's no source control so I've mirrored the weak functions. 


The MiniKey function:

http://pastie.org/8435726


The PrivKey function:

http://pastie.org/8435731




 Date: Mon, 28 Oct 2013 08:46:34 +1000 
 Subject: Re: [Bitcoin-development] Advisory: PHP library Bitcoin SCI  
 weak key generation 
 From: gavinandre...@gmail.com 
 To: a86...@outlook.com 
 CC: bitcoin-development@lists.sourceforge.net 
  
 Thanks for the warning; to be clear, the Bitcoin SCI library is this  
 project? 
http://bitfreak.info/index.php?page=toolst=bitsci 
  
  
 On Mon, Oct 28, 2013 at 8:25 AM, Andres Home  
 a86...@outlook.commailto:a86...@outlook.com wrote: 
 For those developers who are using the Bitcoin SCI library (maybe  
 others too, I 
 found two total and could only make contact with one), I would advise  
 that you 
 review how your software handles private key creation. 
  
 --  
 -- 
 Gavin Andresen  
--
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=60135991iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Feedback requested: reject p2p message

2013-10-27 Thread Gavin Andresen
RE: use HTTP-like status codes:

Okey dokey, I'll add a one-byte machine-readable HTTP-like status code.
Unless y'all want a 32-bit status code.  Or maybe a varint. Or a
three-character numeric string. I really and truly don't care, but I am
writing this code right now so whatever you want, decide quickly.

If anybody has strong feelings about what the reject categories should be,
then please take the time to write a specific list, I can't read your
mind


-- 
--
Gavin Andresen
--
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=60135991iu=/4140/ostg.clktrk___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Feedback requested: reject p2p message

2013-10-27 Thread kjj
Any reason not to use actual HTTP codes?  I'm not aware of any major 
deficiency in them.  Most of them won't apply to us, which is fine, they 
don't seem to apply to HTTP either.  We can extend the scheme on our own 
if we find a good reason to.


That implies 16 bits, or a varint.  I would avoid a string or varstring 
here; we already have a text field.  Varint vs. 16 bits is a minor 
issue, and arguments can be made in both directions.  I flipped a coin 
and got heads, so I'll say varint.


Gavin Andresen wrote:

RE: use HTTP-like status codes:

Okey dokey, I'll add a one-byte machine-readable HTTP-like status 
code. Unless y'all want a 32-bit status code.  Or maybe a varint. Or a 
three-character numeric string. I really and truly don't care, but I 
am writing this code right now so whatever you want, decide quickly.


If anybody has strong feelings about what the reject categories should 
be, then please take the time to write a specific list, I can't read 
your mind



--
--
Gavin Andresen


--
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=60135991iu=/4140/ostg.clktrk


___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


--
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=60135991iu=/4140/ostg.clktrk___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Feedback requested: reject p2p message

2013-10-27 Thread Luke-Jr
On Sunday, October 27, 2013 10:52:25 PM Gavin Andresen wrote:
 If anybody has strong feelings about what the reject categories should be,
 then please take the time to write a specific list, I can't read your
 mind

It might make sense to use the rejection reasons from BIP 22 where applicable.

https://en.bitcoin.it/wiki/BIP_0022#Appendix:_Example_Rejection_Reasons

Luke

--
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=60135991iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development