Eingabespezifikationsdatei für Tokentaxonomie-Framework

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

Sie können Standardassets und Tokenassets definieren, die auf dem Token Taxonomy Framework in derselben Spezifikationsdatei basieren. Sie können Tokenassets nicht basierend auf mehreren Standardwerten 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 Token-Spezifikationsdatei

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 TTF-Standard (Token Taxonomy Framework) 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 denselben Wert wie eine andere gleiche Menge derselben Tokenklasse.

  • unit: fractional

    Ein fraktionales Token kann basierend auf einer angegebenen 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 des Eigentums an Token.
  • divisible: Dieses optionale Verhalten beschreibt, wie Token unterteilt werden können. Der Parameter decimal gibt die Anzahl der Dezimalstellen an, die verwendet werden können. Der kleinste mögliche Bruch mit der Anzahl der Dezimalstellen ist die kleinste Einheit des Tokens, die Eigentum sein kann. 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 Zustand 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 unterschiedliche 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 max_mint_quantity-Parameter oder keinen max_mint_quantity-Parameter verwenden, erstellen Sie ein einzelnes Tokenasset in der Spezifikationsdatei, das für alle Token-IDs verwendet werden soll.