The Anatomy of a Skycoin

Aspects of the Skycoin Platform receive so much attention that the coin itself is sometimes overlooked. Here’s an overview of each of the modules that make up the various functions of a Skycoin and Fiber coins.

  • api – REST API interface

REST API refers to Representational State Transfer, which can be summarized as a design philosophy that centers around performance, scalability, simplicity, modifiability, visibility, portability, and reliability. Skycoin’s API options focuses mostly on providing information, being the primary example.

  • cipher – cryptographic library (key generation, addresses, hashes)
  • cipher/base58 – Base58 encoding
  • cipher/encoder – reflect-based deterministic runtime binary encoder
  • cipher/encrypt – at-rest data encryption (chacha20poly1305+scrypt)
  • cipher/go-bip39 – BIP-39 seed generation

The core of cryptographic function within Skycoin. These modules are responsible of the keys, addresses, and other aspects that prevent sensitive information from being monitored or manipulated.

  • cli – CLI library

Functions related to using Skycoin’s command line interface. Most wallet functions like balance checks and outputs can be performed by typing commands in to a terminal or scripting them to work with other systems.

  • coin – blockchain data structures (blocks, transactions, unspent outputs)

This is the majority of the information that is downloaded when you sync a wallet.

  • daemon – top-level application manager, combining all components (networking, database, wallets)
  • daemon/gnet – networking library
  • daemon/pex – peer management
  • params – configurable transaction verification parameters
  • readable – JSON-encodable representations of internal structures
  • skycoin – core application initialization and configuration
  • testutil – testing utility methods
  • transaction – methods for creating transactions
  • util – miscellaneous utilities
  • visor – top-level blockchain database layer
  • visor/blockdb – low-level blockchain database layer
  • visor/historydb – low-level blockchain database layer for historical blockchain metadata
  • wallet – wallet file management