Designing Namespace and Address for Hyperledger Sawtooth Transaction Family

  • Implementing Hyperledger Sawtooth Transaction Family

    After the namespace and address scheme is defined for the transaction family, the state, transaction, and payload encoding scheme can be defined.

    To define the state, you should analyze the data requirements for your organization and follow an appropriate modeling process to define the semantic data model for the system. For example, you could use entity-relationship modeling to represent conceptual data logic in your enterprise. In our example, the state is as follows:

    hyperledger sawtooth transaction family 5

     

    This can be explained as follows:

    • House APN (Key): The Assessor Parcel Number (APN) for a house is a unique number assigned to each parcel of land by a county tax assessor. The APN is based on formatting codes, depending on the home’s location. Local governments use APNs to identify and keep track of land ownership for property tax purposes.
    • House Owner: The name of the person who currently owns the house.

    Defining transactions involves analyzing all your business use cases and the attributes used to perform these business operations. In our example, transactions and their payloads are as follows:

    • House APN (Key): The key attribute for the state.
    • Action: This can be either the create keyword or the transfer keyword.
    • House Owner: The name of the house owner.

    To define payload encoding schemes, you could choose from one of the following methods:

    • JSON Encoding: JavaScript Object Notation (JSON) is a lightweight data-interchange format that is popularly used in software systems as an alternative to XML. The standard JSON package for Python can be found here: https://docs.python.org/3/library/json.html. The advantages of using JSON are that it is human-readable, it is supported in most programming languages, and it is easy to encode and decode using libraries.
    • Protobuf Encoding: Protocol buffers are Google’s language and platform-neutral mechanism for serializing data. With protobuf encoding, you define the message formats in a .proto file and compile them using the protocol buffer compiler. To find out more, you can follow the guide that can be found here: https://developers.google.com/protocol-buffers/. It is small, fast, and simple, but it is not human-readable. Like JSON, it is also supported in many languages, such as Java, Python, C++, and Go.
    • Simple text encoding: This involves defining your own message format and carrying out character encoding using your own protocol with a special delimiter, or following common formats, such as .csv or base64, to represent data in an ASCII format or string. These are human-readable, simple, easy, fast, and language- and platform-neutral.

    For our example, the encoding for the state and payload is simple text encoding that encodes the data with UTF8 and the CSV format. We are using the Sawtooth XO family as a template.

    For hash collisions, the colliding state will be stored as the UTF-8 encoding of the string with a delimiter, |, such as entry 1|entry 2:

    ‘|’.join(sorted([‘,’.join([house, owner])

    for house, (owner) in house_list.items()])).encode()

  • Related:

    7021214: LDAP Designer 4.6.1 sets an incorrect OID for attributes which are created without specifying an ASN1 ID during creation.

    This document (7021214) is provided subject to the disclaimer at the end of this document.

    Environment

    LDAP Designer for Identity Manager 4.6.1

    Situation

    Creating an eDirectory attribute without specifying an ASN1 ID using LDAP Designer results in an incorrect OID being added to the attribute.

    For example:

    When an attribute with syntax Boolean is created without specifying an ASN1 ID the attribute is created in eDirectory with OID 1.3.6.1.4.1.1466.115.121.1.7 instead of being created without an OID.

    When an attribute with syntax Case Ignore String is created with an empty ASN1 IDthe attribute is created in eDirectory with with OID 1.3.6.1.4.1.1466.115.121.1.15 instead of being created without an OID.

    Resolution

    The expectation is that the attribute should have been created without an OID.

    As a workaround iManager or normal Designer can be used to create attributes until the issue has been fixed.

    Status

    Reported to Engineering

    Disclaimer

    This Support Knowledgebase provides a valuable tool for NetIQ/Novell/SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented “AS IS” WITHOUT WARRANTY OF ANY KIND.

    Related:

    Initialization failed. There is a bad global domain ID in the directory. ASN.1 Server error code error code. Offset value. [valuevaluevaluevalue] (16)

    Details
    Product: Exchange
    Event ID: 3056
    Source: MSExchangeMTA
    Version: 6.5.0000.0
    Message: Initialization failed. There is a bad global domain ID in the directory. ASN.1 Server error code error code. Offset value. [valuevaluevaluevalue] (16)
       
    Explanation
    ASN.1 is an ISO/ITU data encoding standard that refers to Specification of Basic Encoding Rules for Abstract Syntax Notation One.

    The fully encoded ASN.1 envelope is in the

    Microsoft Exchange Server APDU (Application Protocol Data Unit) logs, which are binary representations of communication among message transfer agents (MTAs) in different sites and between MTA and client applications within a site.

    APDU logs are enabled when the logging levels of the X.400 service and APDU categories are both set to Medium or greater after you select MSExchangeMTA on the Diagnostics Logging tab of the Server Properties dialog box. To create Bf*.log files, set the logging level of the APDU and X.400 categories to Maximum.

    These text logs are stored in the Mtadata directory. The current log is always named Bf0.log. Prior logs are named Bfx.log, where x increases as the age of the log increases.

       
    User Action
    The bad data may be viewed in the APDU log in Mtadata\Bf0.log. Reload the ASN.1 template files from the Microsoft Exchange Server installation compact disc. For more information, see Knowledge Base articles Q168906 and Q163032.

    Related:

    Initialization failed. There is a bad global domain ID in the directory. ASN.1 Server error code {error code}. Offset {value}. [{value}{value}{value}{value}] (16)

    Details
    Product: Exchange
    Event ID: 3056
    Source: MSExchangeMTA
    Version: 6.0
    Component: Message Transfer Agent
    Symbolic Name: MTA03056
    Message: Initialization failed. There is a bad global domain ID in the directory. ASN.1 Server error code {error code}. Offset {value}. [{value}{value}{value}{value}] (16)
       
    Explanation
    ASN.1 is an ISO/ITU data encoding standard that refers to Specification of Basic Encoding Rules for Abstract Syntax Notation One.The fully encoded ASN.1 envelope is in theMicrosoft Exchange Server APDU (Application Protocol Data Unit) logs, which are binary representations of communication among message transfer agents (MTAs) in different sites and between MTA and client applications within a site. APDU logs are enabled when the logging levels of the X.400 service and APDU categories are both set to Medium or greater after you select MSExchangeMTA on the Diagnostics Logging tab of the Server Properties dialog box. To create Bf*.log files, set the logging level of the APDU and X.400 categories to Maximum.These text logs are stored in the Mtadata directory. The current log is always named Bf0.log. Prior logs are named Bfx.log, where x increases as the age of the log increases.
       
    User Action
    The bad data may be viewed in the APDU log in Mtadata\Bf0.log. Reload the ASN.1 template files from the Microsoft Exchange Server installation compact disc. For more information, see Knowledge Base articles Q168906 and Q163032.

    Related:

    Initialization failed. There is a bad global domain ID in the directory. ASN.1 Server error code . Offset . [ ] (16)

    Details
    Product: Exchange
    Event ID: 3056
    Source: MSExchangeMTA
    Version: 6.5.6940.0
    Component: Microsoft Exchange Message Transfer Agent
    Message: Initialization failed. There is a bad global domain ID in the directory. ASN.1 Server error code <error code>. Offset <value>. [<value> <value> <value> <value>] (16)
       
    Explanation

    ASN.1 is an ISO/ITU data encoding standard that refers to Specification of Basic Encoding Rules for Abstract Syntax Notation One.

    The fully encoded ASN.1 envelope is in the

    Microsoft Exchange Server APDU (Application Protocol Data Unit) logs, which are binary representations of communication among message transfer agents (MTAs) in different sites and between MTA and client applications within a site.

    APDU logs are enabled when the logging levels of the X.400 service and APDU categories are both set to Medium or greater after you select MSExchangeMTA on the Diagnostics Logging tab of the Server Properties dialog box. To create Bf*.log files, set the logging level of the APDU and X.400 categories to Maximum.

    These text logs are stored in the Mtadata directory. The current log is always named Bf0.log. Prior logs are named Bfx.log, where x increases as the age of the log increases.

       
    User Action

    The bad data can be viewed in the APDU log in Mtadata\Bf0.log. Reload the ASN.1 template files from the Microsoft Exchange Server installation compact disc. For more information, see Microsoft Knowledge Base articles 168906 and 163032.

    Related:

    A {name} ASN.1 encoding error at offset {value} was detected by a {service name} service. [{value}{value}{value}{value}] ()

    Details
    Product: Exchange
    Event ID: 3020
    Source: MSExchangeMTA
    Version: 6.0
    Component: Message Transfer Agent
    Symbolic Name: MTA03020
    Message: A {name} ASN.1 encoding error at offset {value} was detected by a {service name} service. [{value}{value}{value}{value}] ()
       
    Explanation
    ASN.1 is an ISO/ITU data encoding standard that refers to Specification of Basic Encoding Rules for Abstract Syntax Notation One.The fully encoded ASN.1 envelope is in theMicrosoft Exchange Server APDU (Application Protocol Data Unit) logs, which are binary representations of communication among message transfer agents (MTAs) in different sites and between MTA and client applications within a site. APDU logs are enabled when the logging levels of the X.400 service and APDU categories are both set to Medium or greater after you select MSExchangeMTA on the Diagnostics Logging tab of the Server Properties dialog box. To create Bf*.log files, set the logging level of the APDU and X.400 categories to Maximum.These text logs are stored in the Mtadata directory. The current log is always named Bf0.log. Prior logs are named Bfx.log, where x increases as the age of the log increases.
       
    User Action
    The bad data may be viewed in the APDU log in Mtadata\Bf0.log. Reload the ASN.1 template files from the Exchange server installation compact disc. For more information, see Knowledge Base articles Q168906 and Q163032.

    Related:

    A fatal internal MTA error has occurred. The MTA failed to load the RDI.TPL ASN.1 template file. It may be corrupt. Reload a fresh copy from the installation CD. [ ] (16)

    Details
    Product: Exchange
    Event ID: 2231
    Source: MSExchangeMTA
    Version: 6.5.6940.0
    Component: Microsoft Exchange Message Transfer Agent
    Message: A fatal internal MTA error has occurred. The MTA failed to load the RDI.TPL ASN.1 template file. It may be corrupt. Reload a fresh copy from the installation CD. [<value> <value> <value> <value>] (16)
       
    Explanation

    ASN.1 is an ISO/ITU data encoding standard that refers to Specification of Basic Encoding Rules for Abstract Syntax Notation One.

       
    User Action

    Copy the Rdi.tpl template file from the installation compact disc to the \Exchsrvr\Mtadata directory.

    Related:

    A fatal internal MTA error has occurred. The MTA failed to load the RDI.TPL ASN.1 template file. It may be corrupt. Reload a fresh copy from the installation CD. [{value}{value}{value}{value}] (16)

    Details
    Product: Exchange
    Event ID: 2231
    Source: MSExchangeMTA
    Version: 6.0
    Component: Message Transfer Agent
    Symbolic Name: MTA02231
    Message: A fatal internal MTA error has occurred. The MTA failed to load the RDI.TPL ASN.1 template file. It may be corrupt. Reload a fresh copy from the installation CD. [{value}{value}{value}{value}] (16)
       
    Explanation
    ASN.1 is an ISO/ITU data encoding standard that refers to Specification of Basic Encoding Rules for Abstract Syntax Notation One.
       
    User Action
    Copy the Rdi.tpl template file from the installation compact disc to the \Exchsrvr\Mtadata directory.

    Related:

    A fatal internal MTA error has occurred. The MTA failed to load the RDI.TPL ASN.1 template file. It may be corrupt. Reload a fresh copy from the installation CD. [valuevaluevaluevalue] (16)

    Details
    Product: Exchange
    Event ID: 2231
    Source: MSExchangeMTA
    Version: 6.5.0000.0
    Message: A fatal internal MTA error has occurred. The MTA failed to load the RDI.TPL ASN.1 template file. It may be corrupt. Reload a fresh copy from the installation CD. [valuevaluevaluevalue] (16)
       
    Explanation
    ASN.1 is an ISO/ITU data encoding standard that refers to Specification of Basic Encoding Rules for Abstract Syntax Notation One.
       
    User Action
    Copy the Rdi.tpl template file from the installation compact disc to the \Exchsrvr\Mtadata directory.

    Related:

    ROSE error, FSM state check failure. Current state , service type , service flavor , Control block index [ ] (14)

    Details
    Product: Exchange
    Event ID: 1178
    Source: MSExchangeMTA
    Version: 6.5.6940.0
    Component: Microsoft Exchange Message Transfer Agent
    Message: ROSE error, FSM state check failure. Current state <name>, service type <name>, service flavor <name>, Control block index <index name> [<value> <value> <value> <value>] (14)
       
    Explanation

    ROSE refers to the remote operation service element. ASN.1 is an ISO/ITU data encoding standard that refers to Specification of Basic Encoding Rules for Abstract Syntax Notation One. The fully encoded ASN.1 envelope is in the Microsoft Exchange Server Application Protocol Data Unit (APDU) logs, which are binary representations of communication among message transfer agents (MTAs) in different sites, and between MTA and client applications within a site. APDU logs are enabled when the logging levels of the X.400 service and APDU categories are both set to Medium or greater after you select MSExchangeMTA on the Diagnostics Logging tab of the Server Properties dialog box. These text logs are stored in the Mtadata directory. The current log is always named Bf0.log. Prior logs are named Bfx.log, where x increases as the age of the log increases.

       
    User Action

    Stop and restart the message transfer agent (MTA) service. If the error persists, run the Mtacheck.exe utility. Stop the MTA service, open a command prompt, and type Mtacheck /v /f c:\mta.txt. To obtain more information, on the Diagnostics Logging of the Server Properties dialog box, select MSExchangeMTA, and then set the logging level of the Interoperability and X.400 categories to Medium or greater.

    If Mtacheck removes objects from a database queue, it places each damaged object in a Db*.dat file in \Exchsrvr\Mtadata\Mtacheck.out. Check your drives and verify that core *.dat files are in the \Exchsrvr\Mtadata directories. The \Exchsrvr\Mtadata directory with *.dat files may be on more than one drive. For assistance, contact Microsoft Product Support Services.

    Related: