Skip to content

Commit

Permalink
More edits and deletes of unwanted files
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelfolkson committed Sep 25, 2017
1 parent 97852e9 commit 618ac27
Show file tree
Hide file tree
Showing 9 changed files with 42 additions and 13 deletions.
12 changes: 12 additions & 0 deletions docs/protocol/backups.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Backups

## Backing up your Bitcoin wallet

Your Bitcoin wallet is generated using a 12 word seed which you are encouraged to save on paper. (The order of the words is important.) This seed will allow you to access your funds in the case of a loss or failure of your machine

There is an outstanding pull request to allow you to access your seed in the user interface.

https://github.com/OpenBazaar/openbazaar-desktop/pull/690

## Backing up your store and other account data

18 changes: 12 additions & 6 deletions docs/protocol/bitcoin.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Bitcoin
# Bitcoin

The early release of OpenBazaar 2.0 will only accept the cryptocurrency Bitcoin. There is a Shapeshift integration so you can still purchase items on OpenBazaar with other cryptocurrencies via Shapeshift. There are plans to facilitate direct purchases with other cryptocurrencies in the near future.

Expand All @@ -8,10 +8,10 @@ Bitcoin enables a "trustless" escrow system using multi-signature transactions w

The activation of SegWit in Bitcoin Core should decrease transaction fees in the short term but there are multiple cryptocurrencies that can offer additional or superior features such as lower transaction fees, shorter block times or stronger privacy.

In theory, the OpenBazaar protocol could work with any cryptocurrency, not just Bitcoin. In practice, there are certain features a cryptocurrency must have to be added seamlessly to the OpenBazaar protocol. Multi-signature transactions must be enabled and a UTXO is preferential to the account model. In summary, cryptocurrencies that are a close derivative to Bitcoin are stronger candidates for integrations in the short term.
In theory, the OpenBazaar protocol could work with any cryptocurrency, not just Bitcoin. In practice, there are certain features a cryptocurrency must have to be added seamlessly to the OpenBazaar protocol. Multi-signature transactions must be enabled and a UTXO model is preferential to the account model. In summary, cryptocurrencies that are a close derivative to Bitcoin are stronger candidates for integrations in the short term.

#### Multi-sig scripts
If you'd like to learn more about how Bitcoin works we'd suggest reading the <a href="https://bitcoin.org/en/developer-guide">Bitcoin Developer Guide</a>. However, we can provide a quick overview of how the escrow system works.
## Multi-sig scripts
If you'd like to learn more about how Bitcoin works we'd suggest reading the <a href="https://bitcoin.org/en/developer-guide">Bitcoin Developer Guide</a> or [Mastering Bitcoin](https://www.amazon.com/Mastering-Bitcoin-Programming-Open-Blockchain/dp/1491954388/) by Andreas Antonopoulos. However, we can provide a quick overview of how the escrow system works.

In Bitcoin, the coins are not technically sent to a bitcoin "address" or account. Instead, they are sent to a simple computer program (or script). This script sets the terms upon which the coins are allowed to be transferred. A person seeking to spend bitcoins provides the inputs to the script function and the bitcoin software will execute it. If the script returns `True` (and all other transaction checks pass) then the bitcoins may be transferred to another script.

Expand Down Expand Up @@ -45,7 +45,13 @@ OP_ELSE
OP_ENDIF
```

#### Bitcoin Wallets
## Bitcoin Wallets
The OpenBazaar protocol specification has nothing to say about which Bitcoin wallet should be used with the protocol. To improve the user experience the reference implementation comes bundled with a built-in wallet. The default wallet implements something call Simplified Payment Verification (SPV) which provides strong cryptographic validation of incoming Bitcoin transactions while using very little of the computer's resources. The drawback to SPV mode is it leaks enough private data to allow potential attackers to figure out which transactions came from the wallet. That information by itself doesn't say who the *owner* of the wallet is, though other investigative techniques might provide that information.

For this reason, there is a setting in the openbazaar-go config file that allows a user to use bitcoind (a full Bitcoin implementation) with openbazaar-go. Bitcoind is a very heavyweight software and is typically only used by power users, but it does a much better job than SPV at providing transactional privacy.
For this reason, there is a setting in the openbazaar-go config file that allows a user to use bitcoind (a full Bitcoin implementation) with openbazaar-go. Bitcoind is a very heavyweight software and is typically only used by power users, but it does a much better job than SPV at providing transactional privacy.

## Bitcoin Fees

How are Bitcoin fees calculated?

Bitcoin transaction fees are estimated using the 21 Bitcoin fees API. More details [here](https://bitcoinfees.21.co/api).
5 changes: 5 additions & 0 deletions docs/protocol/exchange_rates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Exchange Rates

This is the old link for 1.0. Check what is used for 2.0

https://openbazaar.zendesk.com/hc/en-us/articles/207847063-How-is-the-price-of-Bitcoin-and-various-currencies-determined-
2 changes: 1 addition & 1 deletion docs/protocol/identity.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Identity

OpenBazaar nodes will be able to be identified with hashes (unique identifiers) that are machine readable and not particularly human readable.
OpenBazaar nodes can be identified with hashes (unique identifiers) that are machine readable but not particularly human readable. OpenBazaar uses ed25519 elliptic identity keys; your peer ID is the multihash encoded SHA256 hash of the public key. OpenBazaar currently generates keys deterministically based on the initial mnemonic which can be used to regenerate the OpenBazaar and Bitcoin identities in case of database loss (see backups).

It is planned that human readable names mapping to these unique identifers will be implemented in the near future using Blockstack's subdomain system. More details on this system are [here](https://github.com/blockstack/blockstack-core/blob/master/docs/subdomains.md). This feature won't be ready for the early versions of OpenBazaar 2.0.
18 changes: 12 additions & 6 deletions docs/protocol/ipfs.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
## IPFS
# IPFS

## Introduction to IPFS
<a href="https://ipfs.io/">IPFS</a> stands for InterPlanetary File System. It is a hypermedia distribution protocol which forms the core the OpenBazaar network. It uses a Kademlia DHT, to route downloaders to those seeding files. What makes it unique is how IPFS serializes the data to create a cryptographically authenticated data structure known as a *Merkle* *DAG*.

[Note: much of this description of IPFS is taken verbatim from <a href="http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example">Christian Lundkvist</a> since he did such a great job]
## OpenBazaar fork of IPFS

The OpenBazaar daemon uses a fork of the [go-ipfs](www.github.com/ipfs/go-ipfs) repository so you will not be able to access non-OpenBazaar related content when connected to the OpenBazaar network. There are different protocol strings to segregate the OpenBazaar network from the main IPFS network and an increased TTL on certain types of DHT data. Offline stores are seeded on the network for a week rather than the default 24 hours. You can find the full diff in the README of the forked [repo](https://github.com/OpenBazaar/go-ipfs). The fork is bundled in the vendor package and will be used automatically when you compile and run the server. Note that you will still see github.com/ipfs/go-ipfs import statements instead of github.com/OpenBazaar/go-ipfs despite the package being a fork. This is done to avoid a major refactor of import statements and make rebasing IPFS much easier.

[Note: much of the following description of IPFS is taken verbatim from <a href="http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example">Christian Lundkvist</a> since he did such a great job]

#### IPFS Objects
## IPFS Objects

Before data is seeded it is wrapped in an IPFS object. Objects have two fields:

Expand Down Expand Up @@ -44,7 +50,7 @@ Let's create a visualization of the above IPFS object:

<img src="https://imgur.com/download/56T4pfc">

#### Small Files
### Small Files
Small files (<256 kB) are represented as an IPFS object with the file data in the `Data` field and no `Links`. For example, a text file that says "Hello World" would look like this:
```
{
Expand All @@ -55,7 +61,7 @@ Small files (<256 kB) are represented as an IPFS object with the file data in th
And in a more visual form:
<img src="https://imgur.com/download/m2VwTzR">

#### Large Files
### Large Files
Files >256 kB in size are split into chunks no larger than 256 kB and these chunks are linked to by the parent IPFS object (with filenames omitted). For example:

```
Expand Down Expand Up @@ -102,7 +108,7 @@ The files hello.txt and my_file.txt both contain the string Hello World!\n. The
When representing this directory structure as an IPFS object it looks like this:
<img src="https://imgur.com/download/0PM5xk9">

#### Versioning
### Versioning
IPFS can represent the data structures used by Git to allow for versioned file systems. A `Commit` object has one or more links with names parent0, parent1 etc pointing to previous commits, and one link with name object (this is called tree in Git) that points to the file system structure referenced by that commit.

We give as an example our previous file system directory structure, along with two commits: The first commit is the original structure, and in the second commit we’ve updated the file my_file.txt to say Another World! instead of the original Hello World!.
Expand Down
Empty file removed docs/protocol/naming.md
Empty file.
Empty file removed docs/protocol/primitives.md
Empty file.
Empty file removed docs/protocol/ratings_reviews.md
Empty file.
File renamed without changes.

0 comments on commit 618ac27

Please sign in to comment.