Re: [Bitcoin-development] Request for review/testing: headers-first synchronization in Bitcoin Core

2014-10-12 Thread Geir Harald Hansen
On 12.10.2014 01:34, Pieter Wuille wrote:
 * No orphan blocks stored in memory anymore (reducing memory usage during 
 sync).

Will this slow down reorgs after a fork, compared to today?

Regards,
Geir H. Hansen, Bitminter


--
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://p.sf.net/sfu/Zoho
___
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-12 Thread Geir Harald Hansen
On 11.08.2012 20:56, Wladimir wrote:
 Duplicate strings are not a problem. Some strings are used multiple
 times in the program, and thus appear multiple times in the translation.
 This is because there are cases in which a string that is the same in
 English is translated differently in another language based on the context.

That makes sense. But it's hard to translate when you just see the same
string twice and don't know the context where it will be used.

 At least Qt translator fills duplicates in automatically, with the
 option to change them if desired. I'm not sure about Transifex but I've
 heard it's the same there.

No, I just use copy and paste.

 Use UPnP to map the listening port (default: 0)
 Use UPnP to map the listening port (default: 1 when listening)
 
 The default depends on compiler flags, hence the two messages. I suppose
 the message could be split up, so that Use UPnP to map the listening
 port is factored out.

Sorry, forgot there was a compiler flag for this. No need to split this
up. As long as there is no explanation or description for each string I
think it's easier to translate whole sentences.

On 11.08.2012 20:32, Wladimir wrote:
 By the way, by far the most common support request I have at my pool is

 users withdrawing coins and not seeing it in their wallet because it's
 not up-to-date with the block chain. Might be worth adding
something in
 the bitcoin-qt GUI to make it more obvious that users can't see new
 transactions and why.

 For 0.7 we've added a red (out of sync) warning to the balances when
 the block chain is out of date.

Perfect. This will prevent a lot of confusion. Thanks!

Regards,
Geir H. Hansen, bitminter.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-11 Thread Geir Harald Hansen
On 02.08.2012 18:43, Jeff Garzik 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.

Looks like much goodness in this version. Thanks for all this work.

Any chance that options to limit the size of blocks and prioritize paid
vs free txes could make it in?

By the way, by far the most common support request I have at my pool is
users withdrawing coins and not seeing it in their wallet because it's
not up-to-date with the block chain. Might be worth adding something in
the bitcoin-qt GUI to make it more obvious that users can't see new
transactions and why.

 2) Translations update 2012-08-01 (fetched from Transifex)

I just now updated the Norwegian translation on Transifex, if you'd like
to do another pull before the release. For some reason there were many
strings I had already translated that now had no translation and had to
be done again (even ones that had the same English text). Many languages
are now only about 50% translated.

Also there were new duplicated strings:

Verify a message to ensure it was signed with a specified Bitcoin address
Sign a message to prove you own a Bitcoin address
Clear All

These two seem odd:
Use UPnP to map the listening port (default: 0)
Use UPnP to map the listening port (default: 1 when listening)

Regards,
Geir H. Hansen, bitminter.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] getmemorypool BIP process

2012-03-04 Thread Geir Harald Hansen
On 04.03.2012 02:04, Luke-Jr wrote:
 On Saturday, March 03, 2012 6:51:34 PM Geir Harald Hansen wrote:
 Long polling as currently implemented in pools has a race condition.
 Does the miner reconnect first or does another block change happen
 first? Double block changes are common with merged mining and I'm
 doing all sorts of tricks in my pool backend to reduce this problem.
 
 How would you suggest addressing this? I presume if a share solves blocks on 
 multiple chains, you just longpoll once when that's successful?

If the client doesn't tell you which block change it saw last, you can't
avoid this problem completely.

 How about another entry longpollid in long poll responses. The last
 seen longpollid should be included by the client in future long poll
 requests. This enables the server to see if the client has missed any
 block changes. The ID could perhaps be submitted in an HTTP header
 (X-LongPollID?) if we wish to keep the JSON-RPC params empty, or params
 could hold an object with a key longpollid. Could be a string or
 number, like workid.
 
 Hmm, the problem is that adding any parameters to getmemorypool itself breaks 
 compatibility with bitcoind 0.5, and using HTTP headers makes it 
 HTTP-specific 
 again. Any ideas?

I think long polling and reconnecting to LP is an HTTP-specific problem
anyway? So it may be best to go with an HTTP header. See below for an
idea for a capabilities reporting system, though, which would allow
putting this data into JSON.

 Another useful value in the getmemorypool response would be height, so
 the miner can include the correct height in the coinbase. I would like
 that in bitcoind as well. One JSON-RPC call instead of two, and no race
 condition between getmemorypool and getblocknumber.
 
 Good catch. Should this be required (since it might be necessary for future 
 Bitcoin blocks), or just should for compatibility?

I think should makes sense.

 It should be explained how target vs. fulltarget works.
 
 What is unclear about this?

Reading through it again it is mostly clear except for one thing, how to
submit share/merkle style. It doesn't say exactly how to submit this data.

It says merkle tree, but a merkle branch should suffice. Also, I believe
the coinbase must always be the first transaction of a block? So we
won't need the transaction's index in the merkle tree (it's always index
zero). This would then be just an array of sha256 hashes making up the
merkle branch for the coinbase.

I'd prefer if block header, coinbase tx and merkle branch were submitted
in 3 pieces. When merged mining and submitting a block generating proof
to the aux backend you put an auxiliary proof of work between the block
header and transactions. So the header and transactions are not
necessarily adjacent. Also, there's no merkle branch in a regular
bitcoin block.

 Perhaps some things should be optional for a client to implement?
 
 Doing this safely needs some way for clients to communicate capabilities to 
 the server, which has the problem of passing parameters to getmemorypool.

Let's add an optional servercapabilities key on the server side, the
value being a space-delimited list of what's supported by the server. If
that list contains clientcapabilities then the client may, instead of
sending an empty request, send an object where one of the keys is
clientcapabilities, and the value is a space-delimited list of extensions.

Those names are a bit long, maybe caps is better.

Ok, this is not entirely clean. For the first request the client won't
know what the server supports. For subsequent requests I guess always
assume the last caps the server reported.

 I think noncerange is of limited use and there's a good chance of getting
 the endianness wrong.
 
 There is no mining hardware to date that exhausts even half the nonce space, 
 so I'd really prefer to see this as a required feature on the miner side. On 
 the other hand, it's merely an extension for getwork, so I can see the 
 problem 
 so long as we're using getwork proxies.

Yes, you can end up getting half a nonce range from an upstream server,
and not being able to make use of it because your downstream clients
don't support it.

A single GPU can make full use of the noncerange if you allow the
timestamp to slip a few seconds into the past. I believe most miners do
that today.

Also worth including are the hostlist and switchto getwork
extensions. I think those can fit right into the JSON response, to keep
with being transport-agnostic, but otherwise look like they do for getwork.

Regards,
Geir H. Hansen

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Bitcoin-development mailing list
Bitcoin

Re: [Bitcoin-development] getmemorypool BIP process

2012-03-03 Thread Geir Harald Hansen
On 28.02.2012 23:06, Luke-Jr wrote:
 Please review and comment/critique:
 https://en.bitcoin.it/wiki/BIP_DRAFT:_getmemorypool

Looking forward to implementing this in my pool backend and miner.

A few comments:

transactions   add or remove transactions (both of the above; default if
transactions omitted) 

In the above, you may want to specify that the transactions referred
to here is the one in the first table (JSON-RPC response object) and not
the mutations. For a moment I thought free tx editing was the default.

Long polling as currently implemented in pools has a race condition.
Does the miner reconnect first or does another block change happen
first? Double block changes are common with merged mining and I'm
doing all sorts of tricks in my pool backend to reduce this problem.

How about another entry longpollid in long poll responses. The last
seen longpollid should be included by the client in future long poll
requests. This enables the server to see if the client has missed any
block changes. The ID could perhaps be submitted in an HTTP header
(X-LongPollID?) if we wish to keep the JSON-RPC params empty, or params
could hold an object with a key longpollid. Could be a string or
number, like workid.

Another useful value in the getmemorypool response would be height, so
the miner can include the correct height in the coinbase. I would like
that in bitcoind as well. One JSON-RPC call instead of two, and no race
condition between getmemorypool and getblocknumber.

It should be explained how target vs. fulltarget works.

Perhaps some things should be optional for a client to implement? I
think noncerange is of limited use and there's a good chance of
getting the endianness wrong.

Regards,
Geir Harald Hansen

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development