Wo macht der Code OP_RETURN zu einem Standardtransaktionstyp?

Ich schaue mir die Bitcoin-Github-Geschichte an. Ich versuche, den Commit zu finden, bei dem OP_RETURN als Standard-TX akzeptiert wurde. Dies wurde in das Änderungsprotokoll für Bitcoin Core 0.90 aufgenommen. Jede Hilfe wäre willkommen.

Ich schaue durch den Skriptlöser und sehe, wo OP_RETURN als Typ in der Vorlage enthalten ist, sehe aber nicht, wo es für einen Nulldatenfall wahr zurückgibt.

Vielen Dank.

Antworten (2)

Dies ist die PR, die OP_RETURN-Ausgaben zum Standard gemacht hat:

https://github.com/bitcoin/bitcoin/pull/2738

Die Verpflichtung:

https://github.com/jgarzik/bitcoin/commit/a79342479f577013f2fd2573fb32585d6f4981b3

Der aktuelle Code:

https://github.com/bitcoin/bitcoin/blob/v0.11.0/src/script/standard.cpp#L56-L58

    if (GetBoolArg("-datacarrier", true))
        mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN << OP_SMALLDATA));
    mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN));

Hier:

bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, vector<vector<unsigned char> >& vSolutionsRet)
[...]
    // Empty, provably prunable, data-carrying output
    if (GetBoolArg("-datacarrier", true))
        mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN << OP_SMALLDATA));
    mTemplates.insert(make_pair(TX_NULL_DATA, CScript() << OP_RETURN));

https://github.com/bitcoin/bitcoin/blob/ddd8d80c63182aefea56abf743bb9199d9602544/src/script/standard.cpp#L40