Re: [Bitcoin-development] BIP to improve the availability of blocks

2012-04-30 Thread Zell Faze
Although quite true, I actually agree though that there should be some sort of 
checksum for the blocks.  Bandwidth may not be a bottleneck now (or ever), but 
it may be at some point.  This change will help Bitcoin scale.


It stopped being just a website a long time ago. For many of us, most of us, 
Wikipedia has become an indispensable part of our daily lives.
— Jimmy Wales, Founder of Wikipedia 
Help protect it now. Please make a donation today: 
http://www.wikimediafoundation.org/wiki/Donate



--- On Mon, 4/30/12, Amir Taaki zgen...@yahoo.com wrote:

 From: Amir Taaki zgen...@yahoo.com
 Subject: Re: [Bitcoin-development] BIP to improve the availability of blocks
 To: bitcoin-development@lists.sourceforge.net 
 bitcoin-development@lists.sourceforge.net
 Date: Monday, April 30, 2012, 3:11 PM
 This is optimisation where it isn't
 needed. Bandwidth is not the bottleneck of the Bitcoin
 system. It is the immense time needed to validate the
 blockchain.
 
 And clients should never send blocks first. They always send
 an inv packet, then you request the block. It is a
 disruptive change and brings little.
 
 We don't need to optimise every aspect of Bitcoin :) Just
 focus on the big bits that matter, while keeping everything
 working with minimal changes.
 
 For instance say we did this and to maintain backwards
 compatible, we introduced a new message called hash+block.
 Now there are 2 code branches that must be maintained -
 urgh.
 
 
 
 From: Wladimir laa...@gmail.com
 To: Rebroad (sourceforge) rebroad+sourceforge@gmail.com
 
 Cc: bitcoin-development@lists.sourceforge.net
 
 Sent: Monday, April 30, 2012 7:26 PM
 Subject: Re: [Bitcoin-development] BIP to improve the
 availability of blocks
 
 
 On Mon, Apr 30, 2012 at 6:40 PM, Rebroad (sourceforge)
 rebroad+sourceforge@gmail.com
 wrote: 
 
 
 My proposal is that in addition to the size (which is
 advertised in
 the header), the hash is also advertised in the header
 (of a block).
 This would help nodes to determine whether they wanted
 to reject the
 download. (e.g. if it already had a block matching that
 hash). This of
 course wouldn't prevent a rogue node from sending an
 incorrect hash,
 but this would aid in saving bandwidth amongst behaving
 nodes.
 
 
 I suppose it would make sense for clients to be able to
 reject blocks that they already have, if that's not
 currently possible.
 
 
 The other part of the proposal is to allow nodes to request
 upload and
 download blocks that have already been partially
 downloaded.
 
 This could be done by modifying the existing methods of
 upload,
 download, or by adding a new method, perhaps even using
 HTTP/HTTPS or
 something similar. This would also help nodes to obtain
 the blockchain
 who have restrictive ISPs, especially if they are being
 served on port
 80 or 443. This could perhaps also allow web caches to
 keep caches of
 the blockchain, thereby making it also more available
 also.
 
 
 You don't need a BIP if you want to somehow fetch the
 (initial) block chain 
 outside the bitcoin protocol. You could download it from
 some http 
 server or even pass it along on an USB stick. Then with a
 simple client change you can import it: 
 https://github.com/bitcoin/bitcoin/pull/883 .
 
 
 Currently, without this functionality, nodes with
 restrictive (or
 slow) internet have some options, such as going via a
 tor proxy, but
 due to the latency, the problem with multiple receptions
 of the same
 block still occur.
 
 
 If you're behind such a slow internet connection, and
 concerned about 
 every bit of bandwidth, it is better to run a lightweight
 node. For example, Electrum.
 
 Even if you could reduce the wasted bandwidth a bit by
 puzzling 
 around with partial blocks, the download will still be
 substantial (and that's going to get worse before it gets
 better). 
 
 Wladimir
 
 
 --
 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
 
 --
 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 

Re: [Bitcoin-development] Alternative to OP_EVAL

2011-12-31 Thread Zell Faze
I agree with Joel.  I think someone brought this up earlier as well.   Most 
OP_EVAL transactions won't be complex enough to require more than a few loops.

--Zell


It stopped being just a website a long time ago. For many of us, most of us, 
Wikipedia has become an indispensable part of our daily lives.
— Jimmy Wales, Founder of Wikipedia 
Help protect it now. Please make a donation today: 
http://www.wikimediafoundation.org/wiki/Donate



--- On Sat, 12/31/11, Joel Joonatan Kaartinen joel.kaarti...@gmail.com wrote:

 From: Joel Joonatan Kaartinen joel.kaarti...@gmail.com
 Subject: Re: [Bitcoin-development] Alternative to OP_EVAL
 To: rocon...@theorem.ca
 Cc: bitcoin-development@lists.sourceforge.net
 Date: Saturday, December 31, 2011, 4:54 AM
 Wouldn't it work to restrict the
 number of executions of OP_EVAL allowed
 per transaction? That way it wouldn't allow for unlimited
 looping. If
 there's too many OP_EVAL executions during the transaction
 evaluation,
 just consider the transaction illegal. 3 would be enough
 for the
 purposes people have been planning for here I think.
 
 - Joel
 
 On Thu, 2011-12-29 at 11:42 -0500, rocon...@theorem.ca
 wrote:
  On Thu, 29 Dec 2011, theymos wrote:
  
   On Thu, Dec 29, 2011, at 01:55 AM, rocon...@theorem.ca
 wrote:
   The number of operations executed is still
 bounded by the number of
   operations occurring in the script. 
 With the OP_EVAL proposal the
   script language becomes essentially Turing
 complete, with only an
   artificial limit on recursion depth
 preventing arbitrary computation
   and there is no way to know what code will
 run without executing it.
  
   Even if OP_EVAL allowed infinite depth, you'd
 still need to explicitly
   specify all operations performed, since there is
 no way of looping.
  
  That's not true.  Gavin himself showed how to use
 OP_EVAL to loop:
  OP_PUSHDATA {OP_DUP OP_EVAL} OP_DUP OP_EVAL.
  
  Basically OP_DUP lets you duplicate the code on the
 stack and that is the 
  key to looping.  I'm pretty sure from here we get
 get Turing completeness. 
  Using the stack operations I expect you can implement
 the SK-calculus 
  given an OP_EVAL that allows arbitrary depth.
  
  OP_EVAL adds dangerously expressive power to the
 scripting language.
  
 
 
 
 --
 Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't
 need a complex
 infrastructure or vast IT resources to deliver seamless,
 secure access to
 virtual desktops. With this all-in-one solution, easily
 deploy virtual 
 desktops for less than the cost of PCs and save 60% on VDI
 infrastructure 
 costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development
 

--
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Protocol extensions

2011-12-24 Thread Zell Faze
I may be missing something, but perhaps the simplistic method is the best.  

Start all nodes off with a certain level of trust.  Lets choose an arbitrary 
number 5.
If a node's trust level is high enough (lets say 10) forward transactions it 
sends you without checking them.
If a node's trust level is low enough (lets say 0) discard any transactions 
they send you (i.e. don't forward them on).
For nodes with a trust level between 1 and 9, forward without checking between 
1 and 9 out of every 10 transactions.  Check the others, if they are valid, 
increase the trust level by 1, if they are invalid decrease the trust level by 
3.

All of the numbers mentioned here (1-10, 1, 10, 1, 5, and 3) are arbitrary 
numbers that should be determined by the client or user-preferences instead of 
the protocol.  This would allow for clients to have varying amounts of initial 
trust/paranoia about their peers.

By decreasing the amount of trust faster than we increase it, we make it harder 
for untrustworthy clients to cheat us.  By having a cut off point, we make it 
so that untrustworthy clients can not DDoS us.  By randomly verifying some 
transactions in the beginning, we make it harder for a new client from DDoSing 
us, and we prevent our own trust level from being hurt too much for forwarding 
on invalid transactions.

The only problem I can personally see with this system is that if Node A trusts 
Node B with a 10 and Node C connects to Node A, then Node C can send  
transactions that are invalid to Node C via Node A without Node C being any the 
wiser.  This would be stopped fairly quickly as Node B would catch on and stop 
forwarding transactions, but it would be a problem for new Nodes.

This could be fixed (somewhat) by having a message that says not to trust a 
particular node.

--Zell Faze



--- On Thu, 12/22/11, Andy Parkins andypark...@gmail.com wrote:

 From: Andy Parkins andypark...@gmail.com
 Subject: Re: [Bitcoin-development] Protocol extensions
 To: Joel Joonatan Kaartinen joel.kaarti...@gmail.com
 Cc: bitcoin-development@lists.sourceforge.net
 Date: Thursday, December 22, 2011, 9:46 AM
 On 2011 December 22 Thursday, Joel
 Joonatan Kaartinen wrote:
  On Thu, 2011-12-22 at 11:52 +, Andy Parkins
 wrote:
   Why should they have to?  Joining the
 network as a node is very low cost
   to the other nodes.  You can't force any
 node not to be lazy, since
   their option is to disconnect themselves. 
 As to maliciousness, that is
   defended against because when a node negative
 announces a transaction,
   that transaction is going to be checked (note
 that there is still no
   implicit trust) -- if a node is incorrectly
 negative-announcing then it
   can justifiably be kicked.
  
  a node that is not doing any checking themselves can
 not reliably
  forward failed verifications without getting the blame
 for doing faulty
  work. Those nodes would then have the incentive not to
 relay the failed
  verifications. This ends up making it important to
 know which nodes will
  be checking transactions or not so you don't isolate
 yourself from other
  nodes that are also checking transactions.
 
 Yes; I appreciate that.  It's the very point I'm
 making.  A node can choose 
 what work to do, and should have a way of forwarding the
 results of that work 
 to other nodes.  Transaction verifification is the
 main one.
 
 Once a negative-announce message exists, it wouldn't be
 hard to have the other 
 two you need as well: positive-announce and
 neutral-announce.  At present we 
 have only neutral-announce.  However, as the need for
 super nodes and 
 distributed verification gets bigger, having the forwarder
 able to offer an 
 opinion on the quality of a transaction seems ideal to
 me.  Dishonesty will 
 get you isolated pretty quickly if you use
 positive-announce and negative-
 announce to lie.
 
 The problem with this is that it requires a web of trust as
 well as a web of 
 connections.  The only way to gain an advantage from
 this classified 
 forwarding is if you have some way of assigning enough
 trust so that you can 
 forward a classified transaction _without_ checking it
 yourself.  That doesn't 
 sound like an easy problem though.
 
 
 
 Andy
 
 -- 
 Dr Andy Parkins
 andypark...@gmail.com
 
 -Inline Attachment Follows-
 
 --
 Write once. Port to many.
 Get the SDK and tools to simplify cross-platform app
 development. Create 
 new or port existing apps to sell to consumers worldwide.
 Explore the 
 Intel AppUpSM program developer opportunity.
 appdeveloper.intel.com/join
 http://p.sf.net/sfu/intel-appdev
 -Inline Attachment Follows-
 
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development

Re: [Bitcoin-development] Fwd: [BIP 15] Aliases

2011-12-14 Thread Zell Faze
Could we combine this proposal and the HTTPS proposal?

The DNSSEC TXT record could give instructions on how to query an HTTPS server 
to get the address.  Then we get the dynamism of HTTPS without having a rigid 
URL scheme for querying the server along with the advantages of DNSSEC.


--- On Wed, 12/14/11, Rick Wesson r...@support-intelligence.com wrote:

 From: Rick Wesson r...@support-intelligence.com
 Subject: Re: [Bitcoin-development] Fwd: [BIP 15] Aliases
 To: Luke-Jr l...@dashjr.org
 Cc: bitcoin-development@lists.sourceforge.net
 Date: Wednesday, December 14, 2011, 8:22 PM
 understand that not *everyone* wants
 or will adhere to that best
 practice and in my NSHO it isn't.
 
 -rick
 
 2011/12/14 Luke-Jr l...@dashjr.org:
  On Wednesday, December 14, 2011 6:02:25 PM Rick Wesson
 wrote:
  I also am largely in favor of using secured zones
 to publish TXT
  records to digital currencies. I've been thinking
 mainly about TXT
  using the following format for bitcoin.
 
  _btc.lhs.rhs
 
  Don't confuse BTC (Bitcoin unit) with BC (Bitcoin in
 general / protocol)...
  The hard part of using DNS will be sticking to the
 standard good practice of
  using a new address for every transaction.
 
 --
 10 Tips for Better Server Consolidation
 Server virtualization is being driven by many needs. 
 
 But none more important than the need to reduce IT
 complexity 
 while improving strategic productivity.  Learn More! 
 http://www.accelacomm.com/jaw/sdnl/114/51507609/
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development
 

--
10 Tips for Better Server Consolidation
Server virtualization is being driven by many needs.  
But none more important than the need to reduce IT complexity 
while improving strategic productivity.  Learn More! 
http://www.accelacomm.com/jaw/sdnl/114/51507609/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Fwd: [BIP 15] Aliases

2011-12-14 Thread Zell Faze
It is a lot easier to set up an HTTP server to dynamically respond with 
addresses than a DNS record.  It is considered a good practice to use a 
different address for every payment.


It stopped being just a website a long time ago. For many of us, most of us, 
Wikipedia has become an indispensable part of our daily lives.
— Jimmy Wales, Founder of Wikipedia 
Help protect it now. Please make a donation today: 
http://www.wikimediafoundation.org/wiki/Donate


--- On Wed, 12/14/11, Kyle Henderson k...@old.school.nz wrote:

From: Kyle Henderson k...@old.school.nz
Subject: Re: [Bitcoin-development] Fwd: [BIP 15] Aliases
To: Zell Faze zellf...@yahoo.com
Cc: Luke-Jr l...@dashjr.org, Rick Wesson r...@support-intelligence.com, 
bitcoin-development@lists.sourceforge.net
Date: Wednesday, December 14, 2011, 11:56 PM

Just so we're clear, what is the need for HTTP at all?

A query for a string and an answer can all be handled via DNS.

On Thu, Dec 15, 2011 at 4:57 PM, Zell Faze zellf...@yahoo.com wrote:

Could we combine this proposal and the HTTPS proposal?



The DNSSEC TXT record could give instructions on how to query an HTTPS server 
to get the address.  Then we get the dynamism of HTTPS without having a rigid 
URL scheme for querying the server along with the advantages of DNSSEC.





--
10 Tips for Better Server Consolidation
Server virtualization is being driven by many needs.  
But none more important than the need to reduce IT complexity 
while improving strategic productivity.  Learn More! 
http://www.accelacomm.com/jaw/sdnl/114/51507609/___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development