What is STM32 x IOTA ?
The full article was originally published by Milo Chen on Medium. Read the full article here.
DISTRIBUTED LEDGER TECHNOLOGIES (DLTS) ARE BUILT ON A NODE NETWORK WHICH MAINTAINS A DISTRIBUTED LEDGER, WHICH IS A CRYPTOGRAPHICALLY SECURED, DISTRIBUTED DATABASE TO RECORD TRANSACTIONS. NODES ISSUE TRANSACTIONS THROUGH A CONSENSUS PROTOCOL.
IOTA is a distributed ledger technology specifically designed for IoT.
The IOTA distributed ledger is called the tangle and is created by the transactions issued by the nodes in the IOTA network.
- validate two unapproved transactions called tips
- create and sign the new transaction
- perform sufficient Proof-of-Work
- broadcast the new transaction to the IOTA network
The transaction is attached to the tangle together with two references pointing to the validated transactions.
This structure can be modeled as a directed acyclic graph, where the vertices represent single transactions and the edges represent references among pairs of transactions.
A genesis transaction is at the tangle root and includes all the available IOTA tokens, called iotas.
IOTA uses a rather unconventional implementation approach based on trinary representation: every element in IOTA is described using trits = -1, 0, 1 instead of bits, and trytes of 3 trits instead of bytes. A tryte is represented as an integer from -13 to 13, encoded using letters (A-Z) and number 9.
The IOTA network includes full nodes and light nodes. A full node is connected to peers in the network and stores a copy of the tangle. A light node is a device with a seed to be used to create addresses and signatures.
The light node creates and signs transactions and sends them to the full node so that the network can validate and store them. Withdrawing transactions must contain a valid signature. When a transaction is considered valid, the full node adds it to its ledger, updates the balances of the affected addresses and broadcasts the transaction to its neighbors.
An IOTA transaction is a 2673 tryte-long string that can withdraw/deposit iotas or send data. Transactions referring to the same transfer of iotas are packed together in a bundle.
Transactions belonging to the same bundle are attached to the tangle in a chain as shown in the figure . The first transaction in the bundle is the tail, while the last one is the head.
In IOTA, each node corresponds to one or more accounts. An account is identified with a seed which is an 81 tryte-long string that must be kept secure by the node. From a seed, several pairs of cryptographic keys can be generated depending on an index n and a security level l = 1, 2, 3. Each public key corresponds to an IOTA address which has its own balance in iotas. The sum of the balances of all the addresses of an account is the balance of the account.
Transaction withdrawing iotas are digitally signed. The signature scheme used in IOTA is based on the Winternitz One-Time Signature scheme (W-OTS). A higher security level corresponds to a longer signature and therefore 1, 2, or 3 transactions are needed to store the entire signature. On the contrary, transactions that do not withdraw iotas do not need a signature and the 2187 trytes of the signature can be allocated to send data.
IOTA signing process
k_i denotes the i-the key segment, generated by hashing the subseed i times. b_i denotes the i-th normalized bundle hash tryte
value. The key segment k_i is hashed 13-b_i times to obtain the corresponding signature segment.
STM32 x IOTA
THE X-CUBE-IOTA1 EXPANSION SOFTWARE PACKAGE FOR STM32CUBE RUNS ON THE STM32 AND INCLUDES MIDDLEWARE TO ENABLE THE IOTA DISTRIBUTED LEDGER TECHNOLOGY (DLT) FUNCTIONS.
What is the concept of this sentence mean ? Let me show you how exciting it is !
My first time to develop STM32 was in 2009. Today, there are many different STM32 MCU. STMicroelectronics is a French-Italian multinational electronics and semiconductor manufacturer headquartered in Geneva, Switzerland. It is commonly called ST.
STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. STM32 marketing share of China is 69% in 2017.
In Taiwan, there are many firmware developer used STM32. Based on ARM cortex, STM is well known in the industrial control, communications, Internet of Things, and automative industries. If there are many different STM32 MCU, How can I develop code just one time and reuse it in all kind of STM32 MCU ?
The answer is STM32Cube.
STM32Cube is a middleware for developer to use, so that you can support all kind of STM32 MCU.
And now STM32Cube support IOTA, so called X-CUBE-IOTA1, so that you can expect IOTA will support all STM32…