All news

Credits Platform Technical Overview

Credits Platform General Description

Credits is a platform based on blockchain technology and smart contracts for the development and execution of decentralized applications. It serves a mediated between the technology and the business. High speed of transactions, decentralization, scalability, low fees provided by Credits blockchain allow transforming traditional business models eliminating the problems of security, transparency and trust.

The platform has the following features:

  • High network capacity - more than 50 000 transactions per second;
  • Minimum time to process a transaction is around 0.1 seconds;
  • Low fees ranging from $0.001;
  • Smart Contracts with advanced features and tools. 

Technologies Description 

1. Credits use the following programming languages for its platform:

  • C++ - For platform core development
  • Java - For the development of the core to process smart contracts

2. Use of multithreading and safe-thread functions to fit the tasks requiring many resources.

3. Use of network libraries from Boost.ASIO family.

4. Network module:

  • P2P network
  • IPv4 <-> IPv6
  • CTDP (Credits Transfer Data Protocol) - network protocol based on UDP with sending and processing of confirmations of packets delivery by the network nodes

5. Storage module:

  • Distributed block storage
  • NoSQL Solution
  • Berkeley DB core optimized for high load tasks and fast writing\reading operations.

6. Solver module (decision-making module):

  • CDCA (Credits Decision Consensus Algorithm) - unique consensus algorithm with DPoS and BFT features
  • Management of synchronization process
  • Management of the decision-making process

7. API module:

  • Thrift as possibility to standardize interactions between the platform and third-party systems
  • Configurations of ports for interactions

8. Smart contracts module:

  • Java - standard Java language for smart contract development
  • JVM - standard Java Virtual Machine 

Project Ecosystem 

 

Credits Node

A node is an interactive application that communicated through the network with other nodes via UDP packets. All nodes form connected graph on DLT principles. A node’s task on the network level is to provide network consistency and exchange messages with other nodes. A node is an application installed on the computer, it processes and stores transactions, confirms smart contract conditions, processes calls from third-party systems and provides the data upon request from them. All network nodes have the same defined functionality.

There are several types of nodes in the network:

1. Writing Node. A node can be chosen as a Writing Node in case if it participates in consensus, passes it and when a decision made about transaction pool and consequently formed block match the decision made by other Trusted Node of that round. Writing Node can write previously formed block to the storage and distribute it to other nodes for further addition to their storage. It also transmits to the network a list of the Trusted Nodes of the next round (1st stage of consensus). The Block and the list of trusted nodes for the next round must be signed by Trusted Nodes of the current round and this decision can be validated on any network node.

2. Trusted Node. It is a node chosen by the results of the voting between Trusted Nodes of the previous round in order to validate the current pool of transactions, to form a new block from processed and validated transactions and to select the nodes to be included in the list of Trusted Nodes of the next round. Any block or roundtable sent to the network for validation must be signed by Trusted Nodes. After the block is formed it should be validated by all Trusted Nodes and sent to Writing Node for adding it to the storage. For synchronization of a transaction pool that’s being validated by Trusted Nodes, the nodes sort all transactions in the same order by synchronizing their metadata.

3. Common Node. It is a node that just joined the network or a node that doesn’t participate in the consensus. Its main role is synchronization and storage of up-to-date storage (blockchain). It can send blocks to other nodes upon receiving a request for synchronization from them, send the hash of the current storage version on the node for participation in the selection of the Trusted Nodes.

Credits Desktop Wallet

Desktop Wallet has two functions. The first function allows to transfer CS and execute the methods and functions of smart contracts. The second one is a development environment where computer program can be presented as a smart - contract, developed on Java.

Desktop Wallet must be installed to create and deploy smart contracts on Credits platform.

Desktop Wallet allows you to explore the history of transactions, create, edit and execute methods of a smart contract written with Java without installing an integrated development environment, only JVM should be installed.

It has the following functions:

  • Display balance;
  • Explore transactions history;
  • Explore operations with smart contracts;
  • Make transactions;
  • Create a token via smart contract;
  • Operations with already deployed smart contracts.
  • Create Smart Contract
  • Deploy Smart Contract

Credits Monitor

Credits Monitor is a web application/service that provides you with the ability to explore public ledger with a full list of transactions. The monitor is developed on С# programming language. Extensions are written with JS. It connects to the network via API. Network statistics are being updated each second.

Monitor provides the following information:

  • Total number of network nodes;
  • Transactions statistics;
  • Display Balance;
  • Detailed information about transactions of the selected wallet;
  • General information about a smart contract;
  • Overview of the opened smart contract.

The monitor is implemented on the node architecture and to provide actual information it receives information about all changes in the blocks, it also doesn’t participate in the consensus.

https://developers.credits.com/en/Articles/a_About_the_Monitor

Credits Web-Wallet

Credits Web Wallet is an easy-to-use, flexible and adjustable web application for safe and easy interaction with Credits network.

Credits Web Wallet allows transferring of the currency from one user to another, operate with already deployed smart contract (if one doesn’t need to compile it by one’s self) without installation of complete node client.

It automatically synchronizes with the network in real-time and connects to the network via API.

Web wallet has the same functions as Desktop Wallet excluding the ability to create and upload new smart contracts.

It has the following functions:

  • Display balance;
  • Explore transactions history;
  • Explore operations with smart contracts;
  • Make transactions;
  • Create a token via smart contract;
  • Operations with already deployed smart contracts.

https://developers.credits.com/en/Articles/a_How_to_use_Web_Wallet

Share: twitter logo facebook logo reddit logo linkedin logo
This site uses cookies in order to improve your user experience and to provide content tailored specifically to your interests. Detailed information on the use of cookies on this website is provided in our Privacy Policy. By using this website, you consent to the use of cookies. You can always deactivate cookies in commonly used browsers.
Ok