19
Alpha Testnet Release Report 2018 11 19 ENG

Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

AlphaTestnetReleaseReport

2018 11 19

ENG

Page 2: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

2

Contents

IntroductionTechnologyPerformanceRoadmapConclusionImplementation: OverviewImplementation: PackageImplementation: ConsensusImplementation: KernelImplementation: ExtensionImplementation: TxPoolImplementation: Data Context Interface

34567891012141618

Contents

Page 3: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

3

Introduction FLETA is a blockchain service platform designed for DApps. In FLETA, issues of the existing platforms like GAS and Staking are resolved, along with a high TPS and unlimited scalability. This is all made possible through FLETA’s own original PoF (Proof-of-Formulation) consensus model, the block redesign, and the independent multichain structure. The PoF consensus model and block redesign contribute to the enhanced efficiency and processing speed. The independent multichain structure resolves the scalability issue, avoiding overload of the system even when DApps are added infinitely. Additionally, FLETA provides interchain protocol to transfer assets amongst chains, allowing users to make use of Smart Contract based systems such as DEX. It also supports a new service by connecting and utilizing data of different chains such as Big Data. FLETA provides an upper layer so that the language and development method used in existing development environments can be still used, lowering the disparity between existing development environments and that of the blockchain development environment. That is, DApp developers are able to develop services without having to first acquire in-depth knowledge of blockchain technology.

FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model, block redesign, Level Tree validation structure, Smart Contract, and Independent Multichain Structure. Please refer to below Implementation for details. Following in Beta Testnet, interchain protocol and parallel sharding functions will be open, concurrently leading to the opening of the Mainnet after a stabilization process. Please refer to the below Roadmap for the specific timeline. Subsequently to the opening of the Mainnet, FLETA will open a Developer Portal, which provides unparalleled convenience in DApp development and will also provide support to prospective DApps. FLETA coin can be used in the Developer Portal for automation of operation, monitoring, chain management, and development support service.

Introduction

Page 4: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

4

Technology

FLETA’s Proof-of-Formulation removes competition in the mining process and unnecessary calculation. Fork is prevented through the Observer which verifies and signs blocks. This means that such a system allows for faster block generation when compared to that of a completion-based system. The next block generator is designated, which reduces the required transmission range of the prior block, leading to high TPS. Additionally, block redesign minimizes the speed of serialization of block-related data. In turn, processing becomes faster, increasing TPS further.

FLETA provides an independent multichain to each DApp, allowing it to develop and operate on its own, along with an interchain protocol that facilitates interactions among DApps. Consequently, GAS price or Staking is not required, as each chain is independent and takes care of its own processes. Additionally, the miner of each DApp mines the chain and the chain is then operated accordingly. In other words, each DApp can set and develop a token economy which sets and provides the rewards of mining. The Microkernel and Data Context Interface of FLETA provides the opportunity of developing diverse token economies, beyond merely of mining rewards. When the processing of each block finishes or a designated height repetitively appears, rewards can be distributed by embedding a reward logic using Account and Transaction saved in the block.

FLETA’s chain structure is not limited to certain Account, Transaction, and Smart Contract. Every Account, Transaction, and Smart Contract is added through plug-in, implying two different approaches. The default Smart Contract can be added and used, or DApps could opt to add a whole new and different Smart Contract. Moreover, chains can be revised in a Native Level and all the logic can be processed within the chain by adding Account and Transaction. For instance, to develop a blockchain-based Social Network Service, required information as Point has to be added to Account. Messages are transmitted, and posts are made through PostTransaction, MessageTransaction, and RecommendTransaction. They are then sent to an Embedded BD or an External DB to process and generate data. The service can be provided so that users who installed wallet through the web server of that chain can use the local service or also a certain webpage can be provided.

The Alpha Testnet of FLETA provides a high TPS for each chain. Scalability issues and problems such as GAS and Staking have been resolved as each DApp owns and operates an independent chain. The structure with high freedom leads to active and smooth service development and operation. The Beta Testnet will provide interchain protocol to support creation of new values through interaction among chains.

Technology

Page 5: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

5

Performance

The above test has been conducted with 10 Formulators, 5 Observers, and 16 Nodes consisting of 2 Transaction Generators. Node has been evenly distributed to two different Regions through Cloud service, based on roles. The test was conducted using a 4-Core CPU, 8GB Memory and VPS with 20GB SSD.

The above graph is the TPS test outcome on the FLETA’s Alpha Testnet. The table shows the average and threshold of key indicators. Every transaction in this test goes through all the required verification logic from generation to signature, verification and application, without temporary permission to fast-forward the process.

First, the TPS outcome graph displays a gradual increase, as the account generated in Genesis state moves onto the new generation of account and creating transactions. It remains at 10,000 TPS with stability. Transactions go through generation, signature, transmission, reception, verification, storing, and execution, eventually reaching the block with no exception. All blocks undergo the exact same process without exception.

The table indicates the block size, block transmission time, maximum and minimum value, average value and 95% and 99% value, displaying both average and extremes. This data, in turn, shows the stability in block connection even under extreme circumstances, further demonstrating the stable reception and processing of nodes with high TPS.

Performance

Page 6: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

6

Roadmap

Roadmap

2018.11.05

2018.11.19

2018.12.03

2018.12.17

2018.12.31

New Smart Contract Type:Event Sourcing

Release After 6weeks

Documentation,Testable Binary Files(Node, Formulator, Observer)

Release After 2weeks

Explorer, ReportOpen Alpha

New Smart Contract Type:Javascript + Traditional Database

Release After 4weeks

Interchain Protocol,Explorer, Github, Report

Open Beta

Page 7: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

7

Conclusion

Conclusion Actualization of FLETA’s core technologies; the new consensus model and block redesign are demonstrated via the Alpha Testnet. Also, the fact that it was designed for scalability beyond just functioning, proves that such design lays the groundwork for successful operation with high TPS.

A whole new code was created in order to provide a high TPS, making use of the new consensus model, block redesign and the infrastructure which provides multichain structure. Moreover, Account and UTXO Hybrid system grant users more freedom, made possible through the new development and application of data storage structure and TxPool.

FLETA also provides Kernel-based technology to DApps when they are developing services, so that they can expand with ease in the Chain Level. Additionally, Solidity EVM integration with GAS related code removed leads to the rather easy transfer of existing Solidity-based DApps.

Following this Alpha Testnet are step by step openings of High Level interface such as Javascript + Traditional Database. This will allow service development without special expertise or knowledge in blockchain technology, as the system of Modern Development environment can be utilized in the process of developing blockchain-based services.

Page 8: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

8

Implementation: Overview

Implementation

Overview

FLETA’s core was developed in the form of Microkernel Architecture, which was made from scratch from Golang. The one exception is Crypto, which uses the ECDSA secp256k1 library of Ethereum. Additionally, it was designed to support UTXO and Account Hybrid model, and to be easily expanded with Kernel-base.

FLETA’s Kernel provides most of major processes such as consensus, data storage and load, TxPool, network, and Account Type and Transaction Type can also be added. Additionally, if only Data Context Interface which processes data can be supported, other programming languages or systems can be connected with Kernel to actualize Smart Contract. Please refer to the ‘Interface: Data Context’ for details of Data Context Interface.

FLETA’s own scalability supports various types of Smart Contracts. An example of the actualization of Smart Contract, which is included as a default, can be seen in modified EVM for Solidity Integration. In Kernel, EVM for Solidity Integration is not included as a default. Instead, by adding Solidity Integration Plug-in on top of Kernel, modified EVM for Solidity can be used in that Kernel (GAS estimation and restriction code is removed in modified EVM and revisions are made such as changing the whole address system to that of FLETA). This means that without changing the Kernel, other languages can be supported as Smart Contracts.

Countless features other than these have been actualized via code, and the environments to test the features have all been constructed.

Page 9: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

9

Implementation: Package

Implementation

Package

FLETA has the highest level package of common, core, extension, framework, and solidity which is based on Golang package format. Code screenshots and major actualization status and features of such packages are as follows;

defines all the data, logic, services used in blockchain

defines commonly used, diverse data types such as address, coordinate system, queue

defines algorithm for Proof-of-Formulation, data structure and service

defines Data Context Interface, Global Registry of Account Type and Transaction Type

defines Config and logic for generation of new blocks

supports most of major processes such as consensus, data storage and load, TxPool and network

provides Account and UTXO in FIFO (First In First Out), taking Account Seq into consideration

defines accounts used in mainchain; basic account, locked account, multi-signature account

defines Account-based Transactions; Burn,remittance, UTXO withdrawal, etc

defines UTXO-based Transactions; Account deposit, transmission, creation of account, etc

defines Account and Transactions related to EVM with GAS removed and revised address system

core

common

core/consensus

core/data

core/generator

core/kernel

core/txpool

extension/account_def

extension/account_tx

extension/utxo_tx

solidity

Page 10: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

10

Implementation: Consensus

Implementation

Consensus

FLETA’s consensus package is an actualization of its own Proof-of-Formulation, the new consensus model. This has a Transaction plug-in in which FLETA coin is returned after deleting the Transaction plug-in that is used to generateaccounts by using RankTable, FLETA coin and FormulationAccount plug-in which possesses the mining rights.

Proof-of-Formulation uses the formula below to produce scores.

Phase refers to the total circulation of the whole list. hashSpace assumes the role of changing the entire list per phase, and it uses the Hash value of the last generated block. If there is not value, it opts for TxHash of FormulationAccount. Thus, every node generates the same RankTable for the same height, and it is possible to check if the highest-ranking Formulator has generated a block. After the block generation process, each Formulator’s phase increases and is used as a top value in the formula. That is, only after every formulator of the phase receives mining opportunity, does the turn finally come back to the original miner.

uint64(phase)<<32 + uint64(binary.LittleEndian.Uint32(hashSpace[:4]))

Page 11: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

11

Image 1 : Consensus

Implementation: Consensus

Page 12: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

12

Implementation: Kernel

Implementation

Kernel

Kernel comprises the pillar of the chain. The Kernel consists of Consensus, Store, TxPool, Generator and ObserverProxy. Consensus receives new blocks, Store processes Account plug-in/Transaction plug-in and stores/loads blocks. TxPool stores Transactions sent from the outside. Generator generates blocks in Formulator, and ObserverProxy processes the signatures. These factors interact with each other, connecting new blocks and processing the chain, and generating blocks according to the RankTable.

Kernel processes most of the parts except for logic which actually loads and stores data via Data Context Interface, Account plug-in, and Transaction plug-in. Hence, a chain’s business logic can be developed in a Native Level when using such Kernels to develop DApps. Other than the provided Account plug-in, Transaction plug-in, and Smart Contract, DApps can develop and operate their own system if necessary or desired.

Page 13: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

13

Image 2 : Kernel

Implementation: Kernel

Page 14: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

14

Implementation: Extension

Implementation

Extension

The extension package of FLETA provides Account plug-in and Transaction plug-in, which are provided as default by FLETA. In FLETA, all the Accounts and Transactions are added as plug-in and thereby, basic Account and Transaction of the mainchain is provided through plug-in.

Additionally, SingleAccount, LockedAccount and MultiSigAccount are provided. SingleAccount is a basic Account used for storing and loading Balance. LockedAccount only allows transactions when generated from Genesis and turned to designated UnlockHeight. MultiSigAccount approves the transaction when transactions corresponding to M number of PublicHash out of N number is there.

Also, Account Transaction plug-in such as Transfer, Transaction, Burn, and Withdraw are provided. Here, Transfer refers to a normal remittance, Transaction generates diverse Accounts, Burn supports burning, and Withdraw converts to UTXO. Moreover, UTXO Transaction plug-in, such as Deposit which deposits UTXO in Account, is provided.

All the plug-ins provided can be added with those selected by each DApp chain.

Page 15: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

15

Image 3 : Extension

Implementation: Extension

Page 16: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

16

Implementation: TxPool

Implementation

TxPool

TxPool was developed to store transactions either received from the outside or generated inside. TxPool supports both Account and UTXO, complying with the First In First Out principle regardless of the transaction type. Moreover, by making only the next Seq Transaction to be returned, it provides a continuous Seq to go without stopping when returning. Unnecessary data is not left behind, as transactions below the last Seq are deleted when trying to delete.

First In First Out processing is supported on the information of Account and Type that will be returned next. At the same time, in order to process big data, it consists a Queue with a fast and efficient processing and memory, using a Queue that bind Circular Queue with a fixed length. Additionally, a Linked List Queue supports removing already processed UTXOs by TxHash value and provides an efficient First In First Out processing. Finally, Sorted Queue is provided, which lines up to return the transactions in order even if Seq comes in a mixed order. This allows storage and acquisition of transactions to process in order, with timeliness and efficiency. It supports the processing of Account-based transaction which takes Seq value into consideration even if Seq comes in a mixed order.

Page 17: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

17

Image 4 : TxPool

Implementation: TxPool

Page 18: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

FLETA Alpha Testnet Release Report

18

Implementation: Data Context Interface

Implementation

Data Context Interface

Data Context supports a multilayered snapshot, creating snapshots per transaction to isolate data from In-memory for processing. Below is the screenshot of the Data Context Interface code. When connecting with other languages or environments, data can be read and directly written in Store of the chain. Of course, only when blocks are processed without errors, the Context is recorded in the physical store.

Image 5 : Data Context Interface

Page 19: Alpha Testnet Release Report - FLETA · acquire in-depth knowledge of blockchain technology. FLETA Alpha Testnet is a product of five principal factors; the new PoF consensus model,

Thank YouFLETA.io

Copyright (C) 2018. First Chain Co., Ltd. All Rights Reserved.

FLETAAlpha Testnet Release Report2018 11 19