Eingabespezifikationsdatei für Token Taxonomy Framework

Der Initialisierungsbefehl Blockchain App Builder liest die Eingabespezifikationsdatei und generiert das Gerüstprojekt mit mehreren Tools, um den Chaincode-Entwicklungsprozess zu unterstützen.

Sie können Standardassets und Tokenassets, die auf dem Token Taxonomy Framework basieren, in derselben Spezifikationsdatei definieren. Sie können Tokenassets nicht basierend auf mehreren Standards in derselben Spezifikationsdatei definieren.

Informationen zum Einschließen von Standardassets in die Spezifikationsdatei finden Sie unter Eingabespezifikationsdatei.

Die folgenden Beispielspezifikationsdateien für fungible Tokenassets sind im Blockchain App Builder-Package verfügbar:
  • FiatMoneyToken.yml
  • LoyaltyToken-Go.yml

Zusätzlich zu den Standardeigenschaften und -abschnitten unterstützen fungible Tokenassets die Abschnitte behavior und anatomy in der Spezifikationsdatei. Fungible Tokenassets unterstützen auch die Eigenschaft standard. Das folgende Beispiel zeigt die Struktur einer Spezifikationsdatei für ein fungibles Tokenasset basierend auf dem Token Taxonomy Framework:

assets:
    - name: OBPTOK # Asset name
      type: token  # Asset type

      anatomy: 
          type: fungible # Token type
          unit: fractional # Token unit

      behavior: # Token behaviors
          - divisible: 
                decimal: 2  
          - mintable: 
                max_mint_quantity: 1000 
          - transferable
          - burnable 
          - roles: 
                minter_role_name: minter 

      properties:
          - name: currency_name # Custom attribute to represent the token in certain currency. This attribute is helpful for exchanging the tokens with fiat currency.
            type: string

          - name: token_to_currency_ratio # Custom attribute to specify the token to currency ratio. This attribute is helpful for exchanging the tokens with fiat currency.
            type: number

Tabelle 7-5: Parameterbeschreibungen und Beispiele für eine Fungible Tokenspezifikationsdatei

Eintrag Beschreibung Beispiele:
type:

Sie müssen type: token im Abschnitt assets angeben.

assets:
    - name: OBPTOK # Asset name
      type: token  # Asset type
standard: Die Eigenschaft standard stellt den Tokenstandard dar, der bei der Chaincode-Generierung zu befolgen ist. Für fungible Token wird nur der Wert ttf+ unterstützt. Wenn die Eigenschaft standard nicht für ein fungibles Token angegeben ist, wird der Token Taxonomy Framework-(TTF-)Standard befolgt.

      standard: ttf+ # Token standard
anatomy:
Der Abschnitt anatomy enthält zwei obligatorische Parameter für fungible Token:
  • type: fungible

    Eine Menge fungibler Token hat den gleichen Wert wie eine andere gleiche Menge derselben Tokenklasse.

  • unit: fractional

    Ein Bruchteil-Token kann basierend auf einer bestimmten Anzahl von Dezimalstellen in kleinere Einheiten unterteilt werden.

anatomy: 
          type: fungible # Token type
          unit: fractional # Token unit
behavior: In diesem Abschnitt werden die Funktionen und Einschränkungen des Tokens beschrieben. Das Verhalten mintable und transferable sind für fungible Token obligatorisch.
  • mintable: Dieses obligatorische Verhalten unterstützt das Minting neuer Tokeninstanzen. Der optionale Parameter max_mint_quantity gibt die Gesamtanzahl der Token an, die geprägt werden können. Wenn Sie den Parameter max_mint_quantity nicht angeben, können beliebig viele Token geprägt werden.
  • transferable: Dieses obligatorische Verhalten unterstützt die Übertragung der Eigentumsrechte an Token.
  • divisible: Dieses optionale Verhalten beschreibt, wie Token unterteilt werden können. Der Parameter decimal gibt die Anzahl der zu verwendenden Dezimalstellen an. Der kleinste Bruchteil, der mit der Anzahl der Dezimalstellen möglich ist, ist die kleinste Einheit des Tokens, dessen Eigentümer Sie sein können. Wenn der Parameter decimal nicht angegeben ist, ist der Standardwert null Dezimalstellen.
  • burnable: Dieses optionale Verhalten unterstützt das Deaktivieren oder Brennen von Token. Beim Brennen wird ein Token nicht gelöscht, sondern in einen permanenten Status versetzt, in dem es nicht verwendet werden kann. Brennen ist nicht reversibel.
  • holdable: Dieses optionale Verhalten gibt an, ob Tokensalden zwischen einem Zahler und einem Zahlungsempfänger gesperrt werden können.
  • roles: Dieses optionale Verhalten schränkt das Tokenverhalten auf Benutzer mit bestimmten Rollen ein. Derzeit sind drei Rollen verfügbar: minter_role_name, burner_role_name und notary_role_name. Wenn Sie keine Rollen angeben, kann jeder Benutzer als Minter, Brenner oder Notar fungieren. Beispiel: Wenn die Brennerrolle nicht angegeben ist, hat jeder Accountbenutzer implizit die Brennerrolle. Wenn die Brennerrolle angegeben ist, muss der Benutzer Token Admin während des Tokensetupprozesses die Brennerrolle explizit anderen Benutzern zuweisen.
behavior:
  - mintable:
        max_mint_quantity: 20000
  - transferable
  - divisible:
        decimal: 1
  - burnable
  - holdable
  - roles:
        minter_role_name: minter
        burner_role_name: burner
        notary_role_name: notary

Um mehrere fungible Token-IDs zu erstellen, die verschiedene max_mint_quantity-Parameter verwenden, erstellen Sie ein separates Tokenasset für jede Token-ID in der Spezifikationsdatei mit einer 1:1-Beziehung zwischen Tokenasset und Token-ID.

Um mehrere fungible Token-IDs zu erstellen, die denselben Parameter max_mint_quantity oder keinen Parameter max_mint_quantity verwenden, erstellen Sie ein einzelnes Tokenasset in der Spezifikationsdatei, das für alle Token-IDs verwendet werden soll.