Skip to main content
deleted 3 characters in body
Source Link
Lee
  • 970
  • 7
  • 19

Who first used the term on a forum, mailing list or other public venue?

The earliest post I could find mentioning "coinbase" on bitcoin talk was on June 21, 2010 by user Laszlo:

https://bitcointalk.org/index.php?topic=198.msg1640#msg1640

I'm looking to trace back to the "original specification" of the coinbase transaction, if there is one.

As alluded to by Antoine Poinsot, it seems the original specification is the isCoinBase method of a CTransaction object, as well as in its checkTransaction method:

class CTransaction
{
public:
    int nVersion;
    vector<CTxIn> vin;
    ...
    bool IsCoinBase() const
    {
        return (vin.size() == 1 && vin[0].prevout.IsNull());
    }
    ...

    bool CheckTransaction() const
    {
        ...
        if (IsCoinBase())
            {
                if (vin[0].scriptSig.size() < 2 || vin[0].scriptSig.size() > 100)
                    return error("CTransaction::CheckTransaction() : coinbase script size");
            }
        ...
        return true;
    }
    ...
}

Which I take to mean "The coinbase transaction shall be a standard transaction with exactly one null input transaction where the input scriptSig size is in the range 2 to 100 bytes."

Here, "null" is defined as a COutPoint object with hash==0 and n==-1:

class COutPoint
{
public:
    uint256 hash;
    unsigned int n;
    ...
    bool IsNull() const { return (hash == 0 && n == -1); }
    ...
}

Who first used the term on a forum, mailing list or other public venue?

The earliest post I could find mentioning "coinbase" on bitcoin talk was on June 21, 2010 by user Laszlo:

https://bitcointalk.org/index.php?topic=198.msg1640#msg1640

I'm looking to trace back to the "original specification" of the coinbase transaction, if there is one.

As alluded to by Antoine Poinsot, it seems the original specification is the isCoinBase method of a CTransaction object, as well as in its checkTransaction method:

class CTransaction
{
public:
    int nVersion;
    vector<CTxIn> vin;
    ...
    bool IsCoinBase() const
    {
        return (vin.size() == 1 && vin[0].prevout.IsNull());
    }
    ...

    bool CheckTransaction() const
    {
        ...
        if (IsCoinBase())
            {
                if (vin[0].scriptSig.size() < 2 || vin[0].scriptSig.size() > 100)
                    return error("CTransaction::CheckTransaction() : coinbase script size");
            }
        ...
        return true;
    }
    ...
}

Which I take to mean "The coinbase transaction shall be a standard transaction with exactly one null input transaction where the input scriptSig size is in the range 2 to 100 bytes."

Here, "null" is defined as a COutPoint object with hash==0 and n==-1:

class COutPoint
{
public:
    uint256 hash;
    unsigned int n;
    ...
    bool IsNull() const { return (hash == 0 && n == -1); }
    ...
}

Who first used the term on a forum, mailing list or other public venue?

The earliest post I could find mentioning "coinbase" on bitcoin talk was on June 21, 2010 by user Laszlo:

https://bitcointalk.org/index.php?topic=198.msg1640#msg1640

I'm looking to trace back to the "original specification" of the coinbase transaction, if there is one.

As alluded to by Antoine Poinsot, it seems the original specification is the isCoinBase method of a CTransaction object, as well as its checkTransaction method:

class CTransaction
{
public:
    int nVersion;
    vector<CTxIn> vin;
    ...
    bool IsCoinBase() const
    {
        return (vin.size() == 1 && vin[0].prevout.IsNull());
    }
    ...

    bool CheckTransaction() const
    {
        ...
        if (IsCoinBase())
            {
                if (vin[0].scriptSig.size() < 2 || vin[0].scriptSig.size() > 100)
                    return error("CTransaction::CheckTransaction() : coinbase script size");
            }
        ...
        return true;
    }
    ...
}

Which I take to mean "The coinbase transaction shall be a standard transaction with exactly one null input transaction where the input scriptSig size is in the range 2 to 100 bytes."

Here, "null" is defined as a COutPoint object with hash==0 and n==-1:

class COutPoint
{
public:
    uint256 hash;
    unsigned int n;
    ...
    bool IsNull() const { return (hash == 0 && n == -1); }
    ...
}
added 1769 characters in body
Source Link
Lee
  • 970
  • 7
  • 19

Who first used the term on a forum, mailing list or other public venue?

The earliest post I could find mentioning "coinbase" on bitcoin talk was on June 21, 2010 by user Laszlo:

https://bitcointalk.org/index.php?topic=198.msg1640#msg1640

I'm looking to trace back to the "original specification" of the coinbase transaction, if there is one.

As alluded to by Antoine Poinsot, it seems the original specification is the isCoinBase method of a CTransaction object, as well as in its checkTransaction method:

class CTransaction
{
public:
    int nVersion;
    vector<CTxIn> vin;
    ...
    bool IsCoinBase() const
    {
        return (vin.size() == 1 && vin[0].prevout.IsNull());
    }
    ...

    bool CheckTransaction() const
    {
        ...
        if (IsCoinBase())
            {
                if (vin[0].scriptSig.size() < 2 || vin[0].scriptSig.size() > 100)
                    return error("CTransaction::CheckTransaction() : coinbase script size");
            }
        ...
        return true;
    }
    ...
}

Which I take to mean "The coinbase transaction shall be a standard transaction with exactly one null input transaction where the input scriptSig size is in the range 2 to 100 bytes."

Here, "null" is defined as a COutPoint object with hash==0 and n==-1:

class COutPoint
{
public:
    uint256 hash;
    unsigned int n;
    ...
    bool IsNull() const { return (hash == 0 && n == -1); }
    ...
}

Who first used the term on a forum, mailing list or other public venue?

The earliest post I could find mentioning "coinbase" on bitcoin talk was on June 21, 2010 by user Laszlo:

https://bitcointalk.org/index.php?topic=198.msg1640#msg1640

Who first used the term on a forum, mailing list or other public venue?

The earliest post I could find mentioning "coinbase" on bitcoin talk was on June 21, 2010 by user Laszlo:

https://bitcointalk.org/index.php?topic=198.msg1640#msg1640

I'm looking to trace back to the "original specification" of the coinbase transaction, if there is one.

As alluded to by Antoine Poinsot, it seems the original specification is the isCoinBase method of a CTransaction object, as well as in its checkTransaction method:

class CTransaction
{
public:
    int nVersion;
    vector<CTxIn> vin;
    ...
    bool IsCoinBase() const
    {
        return (vin.size() == 1 && vin[0].prevout.IsNull());
    }
    ...

    bool CheckTransaction() const
    {
        ...
        if (IsCoinBase())
            {
                if (vin[0].scriptSig.size() < 2 || vin[0].scriptSig.size() > 100)
                    return error("CTransaction::CheckTransaction() : coinbase script size");
            }
        ...
        return true;
    }
    ...
}

Which I take to mean "The coinbase transaction shall be a standard transaction with exactly one null input transaction where the input scriptSig size is in the range 2 to 100 bytes."

Here, "null" is defined as a COutPoint object with hash==0 and n==-1:

class COutPoint
{
public:
    uint256 hash;
    unsigned int n;
    ...
    bool IsNull() const { return (hash == 0 && n == -1); }
    ...
}
Source Link
Lee
  • 970
  • 7
  • 19

Who first used the term on a forum, mailing list or other public venue?

The earliest post I could find mentioning "coinbase" on bitcoin talk was on June 21, 2010 by user Laszlo:

https://bitcointalk.org/index.php?topic=198.msg1640#msg1640