• This repository has been archived on 21/Feb/2019
  • Stars
    star
    218
  • Rank 181,805 (Top 4 %)
  • Language
    C++
  • License
    The Unlicense
  • Created over 10 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Software to run the old chain (before 2015-10-13). Code for current chain is https://github.com/bitshares/bitshares-core

BitShares

BitShares is a software platform designed to help coordinate voluntary free market operations amongst a set of social actors.

These social actors together maintain a replicated deterministic state machine which defines the state of a free market. This state machine unambigiously defines the ownership of resources amongst market participants, the rules by which resources are reallocated through market operations, and the history of all market operations. Social actors are free to voluntarily enter and exit the market as desired.

Replicas of the state machine are kept consistent using the Delegated Proof-of-Stake distributed consensus protocol, which depends on market operations by a special class of market participants colloquially known as shareholders. Resource ownership is secured using digital signatures and inputs to the state machine are shared amongst actors using a peer-to-peer mesh network.

Features

The system is designed to ensure the following properties:

  • Fault-Tolerance: the market should be resilient to bad actors
  • Immutability: the historical intent of all market participants should be preserved
  • Transparency: any actor can inspect the market to verify that it is operating correctly
  • Censorship Resistance: no actor can be kept from performing valid market operations
  • Flexibility: the rules of the market should be able to change given sufficient shareholder approval
  • Self-Sustainability: the market should be be able to fund its own continued operation

Additional information is available at BitShares.org and the BitShares Wiki. Community discussion occurs at BitSharesTalk.org.

Building

Different platforms have different build instructions:

Using the RPC server

For many applications, it is useful to execute BitShares commands from scripts. The BitShares client includes RPC server functionality to allow programs to submit JSON-formatted commands and retrieve JSON-formatted results over an HTTP connection. To enable the RPC server, you can edit the rpc section of config.json as follows:

  "rpc": {
    "enable": true,
    "rpc_user": "USERNAME",
    "rpc_password": "PASSWORD",
    "rpc_endpoint": "127.0.0.1:1775",
    "httpd_endpoint": "127.0.0.1:1776",

Here, USERNAME and PASSWORD are authentication credentials which must be presented by a client to gain access to the RPC interface. These parameters may also be specified on the command line, but this is not recommended because some popular multi-user operating systems (Linux in particular) allow command line parameters of running programs to be visible to all users.

After editing the configuration file and (re)starting the BitShares client, you can use any HTTP client to POST a JSON object and read the JSON response. Here is an example using the popular curl command line HTTP client:

curl --user USERNAME:PASSWORD http://127.0.0.1:1776/rpc -X POST -H 'Content-Type: application/json' -d '{"method" : "blockchain_get_account", "params" : ["dev0.theoretical"], "id" : 1}'

The POST request returns a JSON result like this (some data elided for brevity):

{"id":1,"result":{"id":31427,"name":"dev0.theoretical","public_data":{"version":"v0.4.27.1"},"owner_key":"BTS75vj8aaDWFwg7Wd6WinAAqVddUcSRJ1hSMDNayLAbCuxsmoQTf", ...},"meta_data":{"type":"public_account","data":""}}}

Since HTTP basic authentication is used, the authentication credentials are sent over the socket in unencrypted plaintext. For this reason, binding to an interface other than localhost in the configuration file is not recommended. If you wish to access the RPC interface from a remote system, you should establish a secure connection using SSH port forwarding (the -L option in OpenSSH) or a reverse proxy SSL/TLS tunnel (typically supported by general-purpose webservers such as nginx).

Please keep in mind that anyone able to connect to the RPC socket with the correct username and password will be able to access all funds, accounts and private keys in any open wallet (including wallets opened manually or by another RPC client connected to the same bitshares_client instance). Thus, your security procedures should protect the username, password, and socket accordingly (including config.json since it contains the username and password)!

Contributing

The source code can always be found at the BitShares GitHub Repository. There are four main branches:

  • master - official BitShares releases are tagged from here; this should only change for a new release
  • bitshares - updates to BitShares are staged here in preparation for the next official release
  • develop - all new development happens here; this is what is used for internal BitShares XTS test networks
  • toolkit - this is the most recent common ancestor between master and develop; forks of BitShares should base from here

Some technical documentation is available at the BitShares GitHub Wiki.

Support

Bugs can be reported directly to the BitShares Issue Tracker.

Technical support can be obtained from the BitSharesTalk Technical Support Forum.

License

The BitShares source code is in the public domain under the Unlicense. See the LICENSE for more information.

More Repositories

1

bitshares-core

BitShares Blockchain node and command-line wallet
C++
1,169
star
2

bitshares-ui

Fully featured Graphical User Interface / Reference Wallet for the BitShares Blockchain
JavaScript
518
star
3

python-bitshares

Fully featured client-side library for the BitShares Blockchain - written entirely in python.
Python
162
star
4

bitsharesjs

JavaScript tools for BitShares Encryption and Serialization
JavaScript
96
star
5

bsips

BitShares Improvement Proposals and Protocols. These technical documents describe the process of updating and improving the BitShares blockchain and technical ecosystem.
63
star
6

bitshares-mobile-app

This is the mobile app for bitshares blockchain
Objective-C
48
star
7

uptick

Python-based CLI tool set for BitShares blockchain
Python
42
star
8

awesome-bitshares

A curated list of awesome resources for the BitShares Blockchain
35
star
9

bitshares1-webwallet

Web Interface for BitShares Wallets 0.x (before 2015-10-13)
CoffeeScript
35
star
10

bitshares-explorer-api

REST API for BitShares
Python
32
star
11

bitsharesjs-ws

Javascript websocket interface for BitShares
JavaScript
30
star
12

beet

Beet is a stand-alone key/identity-manager and signing app for BitShares, heavily influenced by Scatter.
JavaScript
27
star
13

bitshares-js

(DEPRECATED) JavaScript tools for BitShares Encryption and Serialization
25
star
14

devshares

Releases of DevShares
C++
21
star
15

open-explorer

Open Source BitShares Blockchain Explorer
JavaScript
21
star
16

bitshares.github.io-old

This repository contains code of old bitshares.org website. Code of the new site is https://github.com/bitshares/bitshares.org
HTML
21
star
17

docs.bitshares.org

Please check the new repository https://github.com/bitshares/how.bitshares.works. This repository contains the OLD sources (and the build in a different branch) for docs.bitshares.org
CSS
18
star
18

bitshares-community-ui

[Worker Proposal] Light and 100% Responsive, BitShares Community DEX/UI - based on Vue.js Framework
Vue
16
star
19

dev.bitshares.works

BitShares Developer Documentation Portal
Python
12
star
20

bitshares1-qtwallet

Qt Wallet for BitShares 0.x (before 2015-10-13)
C++
11
star
21

wallet.bitshares.org

Hosted wallet of latest release of bitshares-ui. Please submit bug reports and feature requests to https://github.com/bitshares/bitshares-ui/issues
HTML
9
star
22

beet-js

BeetJS is the client library for interaction with Beet
JavaScript
8
star
23

marketing

This is collective of marketing material for advertisement, public relations and knowledgebase for the BitShares blockchain and community
CSS
7
star
24

bitshares-ui-style-guide

Ant based style guide for bitshares-ui
CSS
6
star
25

baips

BitAssets Improvement Proposals
6
star
26

bitshares-gitian

Reproducible builds for BitShares community software
Shell
6
star
27

bitshares1-toolkit

C++
6
star
28

tapin

Account creation service (faucet) built with python-bitshares
Python
5
star
29

v1.bitshares.org

Deprecated; use: https://github.com/bitshares/bitshares.github.io
CSS
5
star
30

ledger-app-bitshares

Bitshares Wallet App for Ledger Nano S
C
5
star
31

gwallet

Graphical bitshares wallet
C++
4
star
32

develop.bitshares.org

Bleeding edge hosted wallet off the develop branch of bitshares-ui
HTML
4
star
33

bitshares-networks

BitShares Networks
Python
3
star
34

bitshares.org

BitShares.org website and development
CSS
3
star
35

committee-tools

Python
3
star
36

bitshares-pay

[unmaintained]
JavaScript
3
star
37

btsproxy

Python
3
star
38

bitshares1-faucet

Various Web Services that interact with BitShares 0.x (before 2015-10-13)
Ruby
3
star
39

how.bitshares.works

Repository that hosts the content of https://how.bitshares.works
3
star
40

homebrew-boost

Homebrew Tap for older versions of boost library
Ruby
2
star
41

bitshares1-vendor

3rd party libraries adapted for our build environment
C
2
star
42

roadmap

BitShares Official Roadmap
2
star
43

hackthedex.io

Hack The DEX: the BitShares Bug Bounty Program
HTML
2
star
44

bitshares.github.io

BitShares Project Homepage
HTML
1
star
45

stakeBTS

Python-based automated software for the management of users investments/funds, their liquidation and rewards with Company acting as Custodian - through BitShares blockchain.
Python
1
star
46

dBTS_ERC20_token

Decelerated BitShares - A 1:1 MPA ("synth") to BitShares on Ethereum blockchain
Solidity
1
star
47

bitshares-ui-staging

Hosted wallet of latest build of bitshares-ui staging branch
HTML
1
star
48

bitshares-ui-api

JavaScript
1
star
49

doxygen

Documentation Generated from BitShares-Core source code
1
star