BitShares Technical Documentation - Table of Contents List (Updated with links)
Learn from the Contents!! Do you know BitShares History? Are you interested to learn BitShares?
This is BitShares Documentation Contents list. I updated my last year post information and add links. This time, it would be easier to check out each content page.
You might get some ideas what's in the BitShares documents and what you might be able to do with this technology!!!
Graphene Technical Documentation by @xeroc
Table Of Contents
1:: BitShares 2.0
2:: MUSE
3:: Integration Guide
4:: API Guide
5:: Development Guide
6:: Testnets
7:: How to Contribute
1:: BitShares 2.0
1-1. What is BitShares
1-1.1. What is BitShares
- Background
- Consensus Technology
- Distributed Autonomous Companies
- Community
1-1.2. The History of BitShares
- The History of BitShares as laid out by Stan Larimer
- The History of BitShares Part One
- The History of BitShares Part Two
- The History of BitShares Part Three
- December’s Innovation – TAPOS and the End of Mining
- History of Funding
- The Great Consolidation
1-1.3. Delegated Proof of Stake
- Background
- Rationale Behind DPOS
- Shareholders are in Control
- Pooled Mining as Delegated Proof of Work
- Reasons to not randomly select representatives from all users
- Scalability
- Role of Delegates
- How to become a delegate
- Voting Algorithm
- How do I get “votes?”
- Why use only upvotes?
- How are ‘votes’ counted?
- Is there an anti-vote?
- Disincentives for Attacks
- How many witnesses are securing the network
- DPOS Infographic
- Sources and Discussions
1-1.4. Whitepapers
- BitShares 2.0: General Overview
- BitShares 2.0: Financial Smart Contract Platform
1-2. Guides
1-2.1. Installation
1-2.1(a) Downloads
- Precompile Executables
1-2.1(b) Sources
1-2.1(c) Building from Sources
- Downloading the sources
- Dependencies
- Development Toolkit
- Boost 1.57
- Dependencies
- Building BitShares
- Updating BitShares
- Distribution Specific Settings
- Ubuntu 14.04
- Ubuntu 15.04
1-2.1(d) Upgrading
- Recompiling from Sources
1-2.2. Migrating from BitShares 1.0 to BitShares 2.0
1-2.2(a) What is New in BitShares 2.0
1-2.2(b) What has Changed since BitShares 0.9?
1-2.2(c) Blockchain Upgrade
1-2.2(d) Exporing Your Wallet
- BitShares 1.0 Full Client
- Synchronize your Wallet
- Export via the main menu
- Export via the console
- wallet.bitshares.org
1-2.2(e) Importing Your Wallet
- Web Wallet
- CLI wallet
- Claiming Balances
- Manually claim balances
1-2.2(f) Migration Remarks
- Remarks on Private Keys
- Technical Explanation
1-2.3. User Guide
1-2.3(a) For End User
- First Steps for End-Users
- Things you should know
- Accounts
- Security
- Transactions and Operations
- Assets/Tokens
- Decentralized Exchange
- Prediction Markets
- Blockchain Governance
- Vesting Balances
- Voting
- Referal Program
1-2.3(b) For Blockchain “Employees”
1-2.3(c) Frequently Asked Questions
- Assets FAQ
- General
- What happens to the asset creation fee?
- Can What about Parent and Child assets?
- I change x after creation of the asset?
- Changing the issuer
- General
- Fee Pool
- What is the fee pool all about?
- What to do if the fee pool is empty?
- Market Fees
- What happens if I enable Market fees?
- What are Asset Flags and Permissions?
- What are the Permissions?
- W hat are the Flags?
- Market Pegged Assets
- Can I use the same flags/permissions as for UIAs?
- What are market-pegged-asset-specific parameters?
- CLI Wallet FAQ
- Why does the CLI client crash immediately when I try to run it for the first time?
- How can I close the CLI client in a clean way?
- How can I import to my CLI client a wallet originally created in the web GUI?
- How can I create, register and upgrade an account to Lifetime Membership?
- Witness FAQ
- What is the best way to interact with the witness node?
- How do I check whether the witness node is already synced?
- If it seems to be unable to sync beyond a certain date
- Whose private key is [/“BTS6MRyAjQ..”,”5KQwrPbwdL..”]/? Why is it predefined ion the config.ini?
- What is the meaning of all those different text colors in the witness node console?
- How can I close the witness node in a clean way?
- Is it safe to delete logs stored in witness_node_data_dirlogsp2p?
- What is the difference between public and private testnet?
1-2.4. Investor Guide
Claim your Investment
* Claiming Your Stake
1-2.5. Businesses, Developers and Business Developers
1-2.5(a) BitShares Improvement Proposal
1-2.5(b) Funding Your Ideas
- Basic Worker Proposal
- Fee Backed Asset
- Crowdfunding
- Mixed Funding
1-2.6 Tutorials
1-2.6(a) General Tutorials
- How to Run and Use a Full Node
- Account Registration
- Manually Construct Any Transaction
- Proposing a Transaction
- Confidential Transfers
- List Vesting Balances
- Claiming A Vesting Balance
- Voting
- How to trade in the DEX
1-2.6(b) API Usage
- How to Run and Use a Full Node
- How to Run and Use the Cli-Wallet
- Transfering Funds using the cli-wallet
1-2.6(c) Assets
- Creating a new UIA
- Creating a UIA manually
- Update/Change an existing UIA
- Creating a MPA manually
- Publishing a Feed
1-2.6(d) Prediction Market
1-2.6(e) Committee Tutorials
- Creating a New Committee Member
- How to Propose Committee Actions
- How to Approve/Disapprove a Committee Proposal
- How Committee Proposes a Change in Fee
1-2.6(f) Worker Tutorials
1-2.6(g) Witness Tutorials
- How to Run a Block-producing Witness
- How to Become an Active Witness
- Change the Signing Key of your Witness
1-2.6(h) Developers
2:: MUSE
2-1. Installation
2-1.1. Downloads
2-1.2. Sources
2-1.3. Building from Sources
2-1.3(a) Downloading the sources
2-1.3(b) Dependencies
- Development Toolkit
- Boost 1.57
- QT 5.5
2-1.3(c) Building MUSE
2-1.3(d) Distribution Specific Settings
- Ubuntu 14.04
- Ubuntu 15.04
2-1.4. Upgrading
2-1.4(a) Recompiling from Sources
2-2. How to Redeem your MUSE/NOTE
2-2.1. Exporting your wallet
2-2.1(a) From Bitcoin Pre-Sale
Bitcoin Pre-Sale
- Step-By-Step
- Exporting Private Key from Bitcoin Clients
- Bitcoin-QT
- Blockchain.info
- Electrum
- Armory
2-2.1(b) From BitShares Decentralized Exchange
BitShares’ NOTE Token
- Using the main menu
- Using the console
- wallet.bitshares.org
2-2.2. Creating a MUSE account
2-2.3. Importing Your Balance
2-2.3(a) Using the Web Wallet (recommended)
2-2.3(b) Using the Console Client (advanced users)
- Claiming Balances
- Manually claim balances
3:: Integration Guide
3-1: Basic Knowledge
3-1.1. What is Different in BitShares
- Several Tokens
- Registered Identities
- No More Addresses
- Memos
- Securing Funds
- Full Nodes and Clients
- Object IDs
3-1.2. Blockchain Interaction
3-1.2(a) Full Node
- Full Nodes
- Configuration
- Enabling Remote Procedure Calls (RPC)
- Restarting the witness node
- Enabling Block Production
3-1.2(b) Delayed Full Node
3-1.2(c) CLI Wallet
- Launching
- Enabling Remote Procedure Calls (RPC)
3-1.2(d) Web Wallet
- Download
- Installing Dependencies
- Bundling
- Testing Bundle
- Live Development
3-1.2(e) CLI Wallet FAQ
3-1.2(f) Witness FAQ
3-1.3. Network and Wallet Configuration
3-1.3(a) Components
- P2P network
- Trusted Full Node
- Wallet
- Wallet API
3-1.3(b) Network Setups
- General Setup
- High Security Setup
3-1.4 Often used API Calls
3-1.4(a) Objects and IDs
- Objects
- List of commonly used objects
- Examples
- Definitions
- Protocol Space (1.x.x)
- Implementattion Space (2.x.x)
3-1.4(b) Wallet API Calls
--> 4-1.1(b)
3-2: Use-Cases
3-2.1. Exchanges, Bridges, and Gateways
3-2.1(a) Integration Instructions
- Step-By-Step Instructions for Exchanges
- Installation
- Running Daemons and Wallet
- Trusted Full Node
- Delayed Node
- Wallet
- Query blockchain for required data
- Existing BitShares 1 Account
- Claiming BitShares 1.0 funds
- Watching Deposits with Python
- Executing Transfers for Withdrawals
- Supporting Features
- User Issued Assets
- Whitelists and Blacklists
- Hierarchical Corporate Accounts
- Using White- and Black-lists
- Securing Funds
3-2.1(b) Libraries
- Supporting Libraries
API Guide --> 4:: API Guide
3-2.2. Merchants
- Protocols/API
- Libraries
API Guide --> 4:: API Guide
3-2.3. Traders
3-2.3(a) Public API
BitShares Public Full Nodes:
- Websocket Calls & Notifications
- Prerequisits
- Call Format
- Requesting API access
- Database Notifications
- Example Session
- Blockchain API --> 4-1.2(c)
- Database API
- Account History API
- Crypto API
- Network Broadcast API
- Network Nodes API
3-2.3(b) Private API
- How t o prepare a CLI wallet for trading
- Download and Installation
- Executing the cli-wallet
- Wallet API Calls --> 4-1.1(b)
- General Calls
- Wallet Calls
- Account Calls
- Trading Calls
- Asset Calls
- Governance
- Privacy Mode
- Blockchain Inspection
- Transaction Builder
3-2.3(c) Libraries
--> 3-2.3(b)
3-2.4. Businesses
3-2.4(a) Business
3-2.4(b) Libraries
--> 3-2.3(c)
API Guide --> 4:: API Guide
4:: API Guide
4-1: Interfacing with Graphene
4-1.1. Wallet API
4-1.1(a) Remote Procedure Calls
- Prerequisits
- Call Format
- Remarks
4-1.1(b) Wallet API Calls
- General Calls
- Wallet Calls
- Account Calls
- Trading Calls
- Asset Calls
- Governance
- Privacy Mode
- Blockchain Inspection
- Transaction Builder
4-1.2. Blockchain API(s)
4-1.2(a) Remote Procedure Calls
--> 4-1.1(a)
4-1.2(b) Websocket Calls & Notifications
- Prerequisits
- Call Format
- Requesting API Access
- Database Notifications
- Example Session
4-1.2(c) Blockchain API
The Graphene full node distinguishes several different APIs that can be accessed as described the websockets documentation.
Database API
- Objects
- Subscriptions
- Blocks and transactions
- Globals
- Keys
- Accounts
- Balances
- Assets
- Markets / feeds
- Witnesses
- Committee members
- Workers
- Votes
- Authority / Validation
- Proposed Transactions
- Blinded balances
Account History API
- Account History
- Market History
Crypto API
- Blinding and Un-Blinding
- Rage Proofs
- Verification
Network Broadcast API
- Transactions
- Block
Network Nodes API
- Obtain Network Information
- Change Network Settings
Access to some APIs may be restricted and requires login with username and passphrase. More detailed description about this can be found on the API Access Restrictions page.
4-1.3. Blockchain Objects and their Identifiers
--> 5-1.1.
5:: Development Guide
5-1. Blockchain Specification
The technical specifications of blockchain objects and their serialization is part of the following sections.
5-1.1. Objects and IDs
- Objects
- List of commonly used objects
- Examples
- Definitions
- Protocol Space (1.x.x)
- Implementattion Space (2.x.x)
5-2. Namespaces
5-2.1. Graphene::App
namespace graphene::app
- Unnamed Group
- Functions
- Public Functions
- Public Members
5-2.2. Graphene::Chain
namespace graphene::chain
- Typedefs
- Enums
- Functions
- Variables
- Public Members
- Public Functions
- Unnamed Group
5-2.3. Graphene::Wallet
namespace graphene::wallet
- Typedefs
- Functions
- Public Members
- Public Functions
- Unnamed Group
5-3. Frequently Asked Questions
- What is the standard Bitshares address structure and format?
- What public key system is used? If elliptic curve, then what is the curve?
- Is there a specification for Bitshares scripting language? (assuming there is one)
- Is the scripting language turing complete?
- What transaction types are natively supported?
- How is accounting addressed in Bitshares? Is it a Nxt style accounting model or like Bitcoin’s UTXO
- What is the average size in Bytes of a Bitshares transaction?
- How are transactions validated?
- Are there any special affordances made for privacy?
- What data structures are used in the blockchain?
- What is the format of the block header?
- What is the maximum bitshares block size?
- Are there any sharding mechanics currently deployed?
- How are SPV clients handled?
- Does the protocol provide mechanisms for overlay protocols to interact such as OR_RETURN?
- How is time addressed in the blockchain? Is NTP used or some other protocol?
- How do new clients bootstrap into the network?
- What is the average block time?
- Is this done via a gossip protocol or through a federate relay?
6:: TESTNETS
You can find all the relevant information about the public network on a dedicated page: Open Public Testnet (**technical details**)
6-1. Public Testnet How to
6-1. 1. Installation/Confguration of Witness
- Fork CNX’s code base
- Configuration
- Blockchain Parameters
- Default Seed Node List
- Initial Compilation
6-1.2. Genesis Configuration
- Genesis editing
- Writing final genesis
- Including Genesis into the binaries
6-1.3. Initializing Blockchain
- Initializing the genesis block
- Setting up block production
- Embedding the Genesis block (optional)
6-1.4. Connecting a CLI wallet
- Creating a wallet
- Gaining access to stake
- Creating accounts
6-1.5. Establishing a Committee
- Creating members
- Upgrading members
- Registering as committee member
- Voting with faucet account
6-1.6. Web Wallet
- Dependencies
- Fetching the web wallet
- Configuration
- Compilation
6-1.7. Setting up the Faucet
- Installation of Dependencies
- Get the Source
- Configuration
- Faucet
- Rails API
- Database Access
- Database Settings
- Mina deployment
- Update wallet
6-1.8. Nginx Webserver
- Setup
- Configuration
- Running nginx as serice
6-1.9 Installation of Python Library
- Requirements
- Installation
- Usage
6-1.10. Create MPAs/UIAs
We now create some Market Pegged assets and construct the price feed.
6-2. Private Testnet How to
6-2.1. Prerequisites
We assume that you have both witness_node and cli_wallet already compliled (or downloaded from the offical respository).
6-2.2. Folder Structure
Create a new folder (we will refer to it as [Testnet-Home]) in any location you like and copy witness_node and cli_wallet there. The [Testnet-Home] folder will contain all files and folders related to the testnet.
Open a Command Prompt window and switch the current directory to [Testnet-Home].
6-2.3. The Genesis File
The genesis file defines the initial state of the network.
- Default genesis
- Customization of the genesis file
6-2.4. Get the Blockchain ID
6-2.5. Witness Configuration
6-2.6. Start Block Production
6-2.7. CLI Usage
- Create a new wallet
- Gain access to the genesis stake
- Create another account
- Transfer funds between accounts
7:: How to Contribute
7-1. Contribute to BitShares
7-1.1. Backend Development
7-1.2. Frontend Development
7-2. Contribute to Graphene
7-2.1. Backend Development
7-2.2. Frontend Development
7-3. Contribute to the Documentation
7-3.1. Requirements
doxygen (run doxygen in the graphene source to generate required files)
graphviz
sphinx (http://sphinx-doc.org)
breathe (https://github.com/michaeljones/breathe)
- Quick Install in OSX
7-3.2. Building
7-3.3. Output
7-3.4. Deployment
7-3.5. Updating doxygen (optional)
Updated: 2017-8-14
Have you gotten own idea what's in the documentation? Are you going to dig into learning BitShares technology? Enjoy learning!!
Thank you.
WoW !!! - )))
.. what a repository of BiT SHARES WEALTH & UnderstadninG !! - ))
Thank YOU ! - )))))))))
lovelovelove )))
greb'Z )
PumpeD & reSTEEMed - ))
Thank you, @fun-along-theway!
Sincerely .. ThanK YOU !!! - )))
ThiS POST .. is like a BIT SHARES "SWISS ARMY KNIFE" !! - ))
.. a WonderfuL TOOL .. for ALL BTS "needs" - )))
i appreciate it ALLOT !! - ))
These two you-tube channels are great TOO - )))
OPEN LEDGER .. https://www.youtube.com/channel/UCZHkjzM5Vp5RH0H_XGBtS0g/videos
and .. - )))
BIT SHARES MUNICH .. https://www.youtube.com/channel/UCb78hNwIPH_44DnpvFrA-NQ/videos
IF you know of any others, or would recommend any ??? - )))
.. some of my family members .. are not UP for "technical" DETAILS ?? - ))
.. thanks again - ))
Thank you for sharing the information!! :) Would you like to learn more BitShares, steem, crypto, or...? A lot of interesting things to learn, sometimes feel overwhelmed. But try anyway. ;)
The whole D.igital A.sset // C.urrency SPACE !!! - )))
.. is nuts these days - )))
ha ha - ))
SO much opportunity & potential !! - ))
and .. i'm ALL-IN .. for BIT SHARES // GRAPHENE - ))
IT "feels" like the ONLY block chain, poised for MASS ADOPTION.
.. i guess only "time" will tell - )))
and YES .. i'd LOVE to L'earn MORE !! - ))
.. any suggestions .. are WELCOME !! - ))
thanks for the replies !! - ))
GREAT award winning post! Follow me @lurehound
This documentation will helpful to all who are using bitshares and new users interested in bitshares, I have started using bitshares and have some doubts hope this will clear my doubts thanks for bringing to the community.
@krishatnet, I am glad to hear that's helpful.
Legit definition of a "One-Stop-Shop"-Post. Thank you for all your hard work and contributions. For a newbie like me to bitshares this makes the job of compiling all this information much easier. Bookmarked!
@jgr33nwood, Thank you for your comment! :)
Upvoted. I'll be resteeming this now :)
Thank you, @katesmith! :)
This is a great pool of resources. Thank you very much, I´ll keep coming back.
Thank you, @gregario! :)
Great job @tsugimoto! Thank you very much for this.
I decided to update my last year post and add links. So, more easier to read actual contents. ;)
I see that! Will work on improving what you have created. :)
This is great. Just what I was looking for. I've got the bitshares client and just need to do the i.d.checks and i'm set. Thanks for this resteemed.
Thank you, @molometer! :)
Thanks for sharing! A link to your post was included in the Steem.center wiki article about BitShares. Thanks and good luck again!