[hashcash] Re: purging double spend db
- From: Adam Back <adam@xxxxxxxxxxxxxxx>
- To: hashcash@xxxxxxxxxxxxx
- Date: Fri, 8 Oct 2004 13:15:53 -0400
On Fri, Oct 08, 2004 at 12:16:08PM -0400, Atom 'Smasher' wrote:
> On Fri, 8 Oct 2004, Adam Back wrote:
> >If this is all inconvenient for what you are doing or anyway for
> >completeness of control I maybe could make -e available with -p and make
> >it purge all stamps (or those matched by the optional -j pattern) as if
> >they were originally given expiry period given with -e. Ie the -p flag
> >given with -e overrides the one given with -cd.
> ===================
>
> so, if that were implemented,
In fact I implemented between the previous email and now. Quite easy
to add :-) (Not released yet).
> then i could expire spent stamps after X days?
Sure. It would be just as if you'd given -e X when spending them.
In fact you can already in effect.
So say X days is your target (default is 28 days).
Already you can do this as you spend them:
hashcash -cdb20 -r atom@xxxxxxxxxxxxxx -e Xd
and every day say from cron:
hashcash -p now
or add to every invocation the purge option:
hashcash -cdb20 -r atom@xxxxxxxxxxxxxx -e Xd -p 1d
which saves needing to use cron.
QED.
Now with this new feature you could in addition change your mind and
override the period you gave:
Eg. say you had been doing:
hashcash -cdb20 -r atom@xxxxxxxxxxxxxx -e Yd
Then
hashcash -p now
will only expire them as they need to be expired according to period
Y. But this:
hashcash -p now -e Xd
would expire them as if you gave X when you spent them (overriding the
Ydays you gave).
In fact I think this would be equivalent to:
hashcash -p now -t +Nd
where N = Y-X (or -t -Md where M=X-Y).
So those two commands would do roughly the same thing.
> but for now, if i understand this correctly, a purge will get rid of
> spent stamps only after they're expired;
right. Well you can override it to to delete them even though they
aren't expired with "-p now -k" which deletes also unexpired stamps.
> this is determined at the time they're spent, using the "-e" option;
> and by default stamps older than 2419200s (28d) will be purged.
Yes.
> where does the 2d grace period come into play when expiring spent
> stamps?
Well I need to not remove them from the double-spend db until they
would be considered invalid due to age. This means I should keep
things in the double-spend db 2days longer (default grace period) than
you would otherwise think.
In fact the current version (1.12 and earlier) do not do this. That
is the other change I just made which will release as 1.13 presently.
(If you don't do this you open a window where a spammer could re-spend
spent stamps after they've been purged but before they would be
considered invalid).
You can work around this by adding -t -2d to the purge line.
Adam
- Follow-Ups:
- [hashcash] Re: purging double spend db
- From: Jonathan Morton
- References:
- [hashcash] purging double spend db
- From: Atom 'Smasher'
- [hashcash] Re: purging double spend db
- From: Adam Back
- [hashcash] Re: purging double spend db
- From: Atom 'Smasher'
Other related posts:
- » [hashcash] purging double spend db
- » [hashcash] Re: purging double spend db
- » [hashcash] Re: purging double spend db
- » [hashcash] Re: purging double spend db
- » [hashcash] Re: purging double spend db
- » [hashcash] Re: purging double spend db
- [hashcash] Re: purging double spend db
- From: Jonathan Morton
- [hashcash] purging double spend db
- From: Atom 'Smasher'
- [hashcash] Re: purging double spend db
- From: Adam Back
- [hashcash] Re: purging double spend db
- From: Atom 'Smasher'