BitShares developer Documentation BitShares-Core contributors Jan 28, 2019 Introduction 1 Introduction & Architectures 3 1.1 BitShares Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 BitShares Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Key Design Concepts and the Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 BitShares Cash Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5 Blockchain Observation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2 Development Environments 11 2.1 BitShares Code and Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 What’s your interests? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 BitShares Core: Projects Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4 BitShares Core: GitFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3 BitShares Accounts 21 3.1 Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Memberships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3 Fees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 Referral Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5 Vesting Balances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.6 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.7 Public Key and Private Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.8 Multi-Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.9 Voting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4 System Components Elements 45 4.1 Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2 Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.3 db folder - object/index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.4 Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.5 Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 4.6 Evaluators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 4.7 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 4.8 Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 4.9 Chain - db_xxx.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 4.10 Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 4.11 libraries - app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 4.12 libraries - wallet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 i 5 Getting Started 389 5.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 5.2 Test Local Network and Wallet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 5.3 Next Interests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 6 Integration Guide 419 6.1 Basic Knowledge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 6.2 Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 7 Blockchain Interaction 445 7.1 Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 7.2 Cli Wallet and the Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 7.3 Launch a Cli Wallet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 8 Testnets 465 8.1 Public Testnets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 8.2 Private Testnets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 8.3 Other References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 8.4 Testnet Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 9 Support and Optimizations 485 9.1 Python - BitShares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 9.2 API Support & References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 9.3 Support: Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 9.4 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 10 BSIPs 489 10.1 BitShares Improvement Proposals and Protocols (BSIPs) . . . . . . . . . . . . . . . . . . . . . . . . 489 10.2 Funding Your Ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 11 Developers Guide (Tutorials) 491 11.1 Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 11.2 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 11.3 Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 11.4 BitShares Decentralized Exchange (DEX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 11.5 BitShares Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 11.6 Committee Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 11.7 Delegated Proof of Stake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 11.8 Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 11.9 Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 11.10 Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 11.11 Node (Block Producer - Witness) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 11.12 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 11.13 Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 11.14 Python - BitShares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 11.15 Smart Contracts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 11.16 Testnets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 11.17 Transfer / Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 11.18 Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 11.19 Wallet / CLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 11.20 Worker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 11.21 Migration (from BitShares1.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 12 Frequently Asked Questions (FAQ) 497 12.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 ii 12.2 System Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.3 Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.4 Install options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.5 APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 12.6 Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 12.7 Transfer / Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.8 CLI Wallet Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.9 Witness Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.10 bitshares-core wiki (reference) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.11 Assets - FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.12 Fee Pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 12.13 Market Fees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 12.14 Market Pegged Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 12.15 CLI Wallet - FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 12.16 Witness - FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 12.17 Developers - FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 13 GitHub Resources 511 13.1 BitShares Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 13.2 More Resources in GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 14 Articles 513 14.1 BitShares Related Articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 15 1.API Guide 517 15.1 1.1. APIs Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 15.2 1.2. Public Full Node information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 15.3 1.3. Interfacing with Graphene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 15.4 1.4. Quick points - Side notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 16 2.API Access and Restrictions 521 16.1 2.1. Using the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 16.2 2.2. Accessing Restricted API’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 16.3 2.3. Accessing the Named API via HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 16.4 2.4. Login In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 17 3.Available Calls and Often used API 527 17.1 3.1 Remote Procedure Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 17.2 Websocket Calls & Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 17.3 Often used API Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 17.4 BitShares Explorer API - Try it out! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 18 4. Blockchain API(s) 545 18.1 4.1. Database API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 18.2 Account History API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 18.3 Block API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 18.4 Asset API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 18.5 Orders API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 18.6 Crypto API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 18.7 Network Broadcast API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 18.8 Network Nodes API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 19 Wallet API - Calls 577 19.1 General Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 19.2 Wallet Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 iii 19.3 Account Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 19.4 Trading Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 19.5 Asset Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 19.6 Governance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 19.7 Privacy Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 19.8 Blockchain Inspection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 19.9 Transaction Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 20 Objects and IDs 613 20.1 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 20.2 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615 21 Graphene - Namespaces 617 21.1 Graphene::App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 21.2 Graphene::Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 21.3 Graphene::Wallet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698 22 BitShares Community 721 22.1 Join Us! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 23 BitShares Blockchain 723 23.1 BitShares Blockchain Foundation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 23.2 BitShares UI Wallet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 23.3 Bitshares Block Exploer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 23.4 Blockchain Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 24 BitShares Community Events 725 24.1 BitFest Amsterdam 2018 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 24.2 2018 Global Graphene DevCon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 25 Glossary 727 25.1 A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728 25.2 B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728 25.3 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729 25.4 D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 25.5 E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 25.6 F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 25.7 G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 25.8 N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 25.9 P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 25.10 S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 25.11 T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 25.12 U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733 25.13 W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733 26 Knowledge Base 735 iv BitShares developer Documentation Welcome to the BitShares Developers Portal Welcome to the documentation portal for the BitShares Blockchain. The content on this page is managed by the BitShares community and is constantly improved. The purpose of this site is to provide in-depth documentation about the BitShares Blockchain and make it easier for users and developers to leverage the full power of the BitShares Blockchain. • BitShares Whitepaper • BitShares Blockchain Foundation Announcements • BitShares Bug Bounty Program • BitShares Documentation - Users Guide • BitShares Community Introduction 1 BitShares developer Documentation 2 Introduction CHAPTER 1 Introduction & Architectures Welcome to BitShares! BitShares Blockchain implements an industrial-grade technology focused on businesses, or- ganizations or individuals, with an amazing eco-system and free-market economy. Though this documentation, we introduce BitShares Blockchain features and functions to create your Command-Line (i.e., CLI) wallet, application, or other programs for developers. Table of Contents • BitShares Members • BitShares Architecture – GitHub Repositories and Entities • Key Design Concepts and the Features – Key points and fundamentals for the design: – BitShares Available Features • BitShares Cash Flow • Blockchain Observation – Bitshares Block Explorer – Blockchain Activity 1.1 BitShares Members First, let’s understand how we call BitShares Blockchain Community members and groups. When you create a wallet and hold any BTS, you are a BTS Holder (i.e., shareholder). As a BTS Holder, you have a voting power to make decisions in the BitShares Blockchain Community. BTS Holders can vote for witnesses, committee members, and 3 BitShares developer Documentation workers by using your wallet. As an option, if you wish, you can case your voting power to a “Proxy” voter. The Proxy vote in behalf of BTS Holders account. intro/../../_static/structures/btsholders-v1.png 4 Chapter 1. Introduction & Architectures BitShares developer Documentation 1.2 BitShares Architecture 1.2.1 GitHub Repositories and Entities This is an overview of BitShares Architecture entities. The purpose of this image is to bring the main elements together and share what types of resources you might find in the BitShares Github repositories. intro/../../_static/structures/bitshares-architecture-v3notop.png 1.2. BitShares Architecture 5 BitShares developer Documentation 1.3 Key Design Concepts and the Features 1.3.1 Key points and fundamentals for the design: • Keep everything in memory. • Keep the core business logic in a single thread. • Keep cryptographic operations (hashes and signatures) out of the core business logic. • Divide validation into state-dependent and state-independent checks. • Use an object-oriented data model. • Avoid synchronization primitives (locks, atomic operations) • Minimize unnecessary computation in the business logic processor. BitShares is built to aim high-performance blockchain and has been done to remove all calculations that are not part of the critical, order-dependent, evaluation from the core business logic, and to design a protocol the facilitates these kinds of optimizations. 1.3.2 BitShares Available Features BitShares can be made to function as a software, a network, a ledger, a bank, an exchange, and a currency all at once. (e.g., It can fulfill the role of a bank by maintaining a distributed ledger that tracks debt collateralized by other assets. You can find out that BitShares offers numerous features that are not available on other popular blockchain platforms. • SmartCoins are fungible, divisible and free from any restrictions. A SmartCoin is a cryptocurrency whose value is pegged to that of another asset, such as the US Dollar or gold. SmartCoins implement the concept of a collateralized loan and offer it on the blockchain. • Decentralized Exchange - BitShares provides a high-performance decentralized exchange, with all the features you would expect in a trading platform. – Secure: All of the reserves are kept as BTS held on the blockchain, and they cannot be stolen, because there are no private keys that can be compromised to steal the reserves. • Trading / Financial Services • Transferable Named Account (human-friendly account name) • Globally unique account name and ID. • Dynamic Account Permissions • Multi-user control for account • Two authorities: owner and active keys • Transaction + multi-signature authority • Proposed transaction infrastructure – witch tracks partially approved transactions. – It can be used for a scheduled payment • Fees calculation – Transaction fee – Fee Schedules 6 Chapter 1. Introduction & Architectures BitShares developer Documentation • Assets - User Issues Asset (UIA) – to help facilitate profitable business models for certain types of services. – Use Cases (Event tickets, Reward points, privatized SmartCoins, Predictions Market, more). – How to profit (i.e.,Fee pools) • BitAsset - bitUSD, bitEUR, bitCNY, and others. • Delegated Proof of State Consensus (DPOS) – Under DPOS, BTS Holder has influence. – A robust and flexible consensus protocol. • Block Production by Elected witnesses • Referral Program - to incentivize people to bring in more people. • Vesting valance 1.3. Key Design Concepts and the Features 7 BitShares developer Documentation 1.4 BitShares Cash Flow intro/../../_static/output/BitShares-Cashflow2.png 8 Chapter 1. Introduction & Architectures BitShares developer Documentation 1.5 Blockchain Observation 1.5.1 Bitshares Block Explorer BitShares Explorer shows BitShares Blockchain information. You can observe BitShares Blockchain Health Status (head_block_num, head_block_age, chain_id, etc.), how transactions processing, assets volume, and members. If you would like to see more detailed information, the Open Explorer offers other information tabs (i.e., Operations, Proxies, Markets, SmartCoins, UIAs, and Holders) to view. • Cryptofresh • Open Explorer • bts.ai 1.5.2 Blockchain Activity Blockchain Activity Matrix shows different tokens (assets) Activity , Value , and Index . It’s interesting to check the CUI index is Capacity Utilization Index (a rate of blockchain daily activity to total blockchain capacity) to see how much numbers BitShares has. • Block’tivity 1.5. Blockchain Observation 9 BitShares developer Documentation 10 Chapter 1. Introduction & Architectures CHAPTER 2 Development Environments Table of Contents • BitShares Code and Files • What’s your interests? • BitShares Core: Projects Guide – Project Guide and Milestones * BitShares-Core (Team) • BitShares Core: GitFlow – Purpose – Non-Consensus: Development / Release / Bugfix Workflows – Consensus: Development / Release / Bugfix Workflows – Goals To Achieve – Basic Rules – How To Create a Release – How To Create an Emergency Fix – Emergency Fix Workflows 2.1 BitShares Code and Files • Open Source program 11 BitShares developer Documentation • Language uses (mainly): BitShares-Core(C++), python • BitShares GitHub – BitShares-Core (C++) - BitShares Blockchain implementation and command-line interface. – Programs : The bitshares programs are a collection of binaries to run the blockchain, interact with it or utilities. – Libraries : The libraries are the core of the project and defines everything where applications can build on top. – Bitshares-FC - Fast-compiling C++ library – BitShares python - Fully featured client-side library for the BitShares Blockchain - written entirely in python. – BitShares-UI - Fully featured Graphical User Interface / Reference Wallet for the BitShares Blockchain. – BSIPs - BitShares Improvement Proposals and Protocols. These technical documents describe the process of updating and improving the BitShares blockchain and technical ecosystem. – BitSharesjs - JavaScript tools for BitShares Encryption and Serialization. – BitSharesjs-ws - Javascript websocket interface for Bitshares – (more. . . ) 2.2 What’s your interests? What would you like to know more about BitShares Blockchain? BitShares Core is the BitShares blockchain imple- mentation and command-line interface. If you are interested to know about BitShares blockchain background, history, and features, please visit how.bitshares.works and bitshares.org to read more information. If yo do not have a BitShares account yet, you can use BitShares UI wallet (wallet.bitshares.org ) or download a Light Client Wallet to create your BitShares account. Here is the latest BitShares-UI – Release information. If your interests are trying and learning BitShares features, you might want to use BitShares TestNet to experience them. If you are a developer who is interested to contribute to the BitShares Core team, you could download a developer branch and learn more about BitShares-Core current Project might be a good start. Select an appropriate branch when you install BitShares-Core. After you know which branch to download, your next step is the installation of BitShares-Core. Check the BitShares Installation Guide and select your Operation System to follow the installation steps. 12 Chapter 2. Development Environments BitShares developer Documentation intro/../../_static/imgs/your-interests.png BitSharea has great communities to support others and have discussions. Check out the BitShares communities and join to meet other BTS holders! For security issues and bug bounty program, please visit Hack the DEX . 2.2. What’s your interests? 13 BitShares developer Documentation 2.3 BitShares Core: Projects Guide If you are interested to know or involve BitShares-Core developments, you will find the contribution guide, current project, issues and plans in this section. 2.3.1 Project Guide and Milestones • Contribution Guide [DRAFT] • Project • BitShares-Core: current issues and requests • Milestones and Plans • BitShares-Core Releases BitShares-Core (Team) The BitShares-Core team is a team of developers who manage the BitShares-Core repository code and handle the issues that are submitted by other developers. The team creates project plans for next release(s) and delivers the result to the Bitshares community. • Roles – improving – maintaining – upgrading protocol if needed – making Project plans for the future release – creating/ announcing Release – supporting the BitShares community/ answering questions 2.4 BitShares Core: GitFlow 2.4.1 Purpose • The purpose of this document is to describe and define how changes flow into our code and through the various stages of development until it finally goes into production. • The general idea is based on git-flow • For our purposes, the general concept behind gitflow has been extended to allow for these additional needs: 1. We have two different types of releases, mainnet and testnet, with a master-like branch for each one. 2. We have to distinguish Consensus Impacting Changes (aka hardforks) from Non-Consensus Impacting Changes. 14 Chapter 2. Development Environments