Re: Hashcash in Exim

"Eric S. Johansson" <[email protected]> Tue, 11 Sep 2007 09:18:51 -0400
Newsgroups gmane.mail.spam.hashcash
Message-ID <[email protected]>
Paul Schmidt wrote:
> eric,
> 
> Thanks for the response.
> 
> I think that it can be done server wide by adding the following:
> 
>     remote_smtp:
>     driver = smtp
>     headers_add = ....
> 
> My current implementation would be to have the added header by generated 
> by some perl code that would return the hashcash header or nothing, if
> no header should be inserted.  The code to generate the header could use 
> different rules for generation to keep the number of generations down, 
> or do a database lookup for pre-generated hashcash headers.

pregeneration does not look promising *unless* it is part of the email client 
compose process.  removing messages from the delivery process, stamping, and re 
injection works well enough.

> If this doesn't seem like a workable approach, let me know.  Email and 
> Exim are not my field of expertise.

I know more about email than I care to admit even if it is part of my consulting 
practice.

> 
> By the way, the code for the implementation seems like it would be much 
> like the CAMRAM code.  camram.org is not working.  Has that project ceased?

camram is now 2pennyblue.org (aka 2pb, tpblue).  I gave up paying for the camram 
domain a couple of months ago.  the source code is up on launchpad.net. 
https://launchpad.net/2pblue and you will also need 
https://launchpad.net/esjtools and a bunch of other suff.

the code base is in a bit of a mess right now.  I'm finishing up conversion to 
the esjtools and wrapping all dbm accesses into a pyro connected process.  *big* 
problem has been the multiple reader/multiple writer dbm headache.  want to 
convert to sqlite for all databases but it was too much work for right (rsi 
acting up and speeech recoginition not working right) now so I'm taking small 
steps.  really do need help fixing up the data org.

fwiw, reputation pricing is looking very promising for minimizing pricing for 
the good and maximizing pricing fo the bad.  very simple to implement too.  look 
at how your system works, decide where you have usable reputation data and 
assign points.  collect points and for every inbound message see if it meets 
what ever limits you want for stamp required, stamp optional, and no stamp 
needed.  simple implementation coming in next release of 2pb.

more later.

--- eric

Speech-recognition in use.  It makes mistakes, I correct some.