Skip to content

Instantly share code, notes, and snippets.

View fpelliccioni's full-sized avatar

Fernando Pelliccioni fpelliccioni

View GitHub Profile

Guía introductoria a CodeMentor, por Marcos Casagrande (@marcosc90)

¿Que es CodeMentor?

Plataforma para freelancers.

Siempre que se hable de precio en esta guía será en USD

¿Qué lo diferencia de Upwork/Freelancer etc?

@gavinandresen
gavinandresen / UTXO_Cuckoo.md
Last active June 7, 2021 17:45
Using a cuckoo filter for fast 'unspent?' lookups

A "Cuckoo Filter" is a nifty data structure invented a few years ago; read the paper for details.

Like a Bloom filter, you insert items and then can later ask "does this item exist in the filter?" You'll get either a definite "no" or "yes, probably" with some false-positive error rate. Cuckoo filters have two advantages over Bloom filters:

  1. They are more space efficient at false positive rates less than about 0.03.
  2. You can delete items from them without affecting the false positive rate at all.

It seems to me that an in-memory cuckoo filter could work really well to keep track of Bitcoin's "unspent transaction output set" (UTXO set), to make transaction (or block) validation as fast as possible using minimal memory or disk.

Recall that Bitcoin transactions (other than coinbase transactions that create new coins) have inputs that refer to unspent outputs. An input refers to a previous output by giving the transaction id (a 32-byte hash) co

@fpelliccioni
fpelliccioni / gist:4312663
Created December 16, 2012 20:40
C++ Safe Dereferencing Nullable References Proposal
#include <memory>
#include <cstddef> //std::nullptr_t;
template <typename T>
class safe_ref
{
public:
typedef T type;
typedef T& reference;