Skip to content
OSX app for Bitmarkets decentralized marketplace
Objective-C Shell
Branch: master
Clone or download
Latest commit 3001dd9 Apr 12, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
BitMarkets adding javaosx.dmg Nov 13, 2015
BitMarketsTests
Bitmarkets.xcodeproj
Notes
Vendor
dist
submodules
.gitignore ignore eclipse stuff Nov 14, 2014
.gitmodules
CHANGELOG
LICENSE
README.md Update README.md Apr 12, 2016
ToDo.txt
add.sh
checkout.sh
commit.sh updating nodeShouldSelectChildOnAdd & nodeShouldSortChildren Dec 21, 2014
find_projects_path_errors.sh
init.sh adding branch to submodules Dec 4, 2014
pull.sh
push.sh
status.sh

README.md

#Note

This OSX repo has been deprecated as we are working on a Javascript/Electron implementation of Bitmarkets now. We'll be releasing that repo when it's ready.

#Bitmarkets

Bitmarkets is a protocol and client used to implement a p2p online marketplace client using Bitmessage for communications and Bitcoin for payments.

#compiling

After cloning the git repo, you'll need to init and pull all the submodules by running init.sh and pull.sh. Then you should be able to build and run in Xcode.

To verify/audit the build you'll need to download and compile some of the statically built executables (e.g. python and tor in BitmessageKit) seperately.

#security notes

Bitmarkets talks to the network in three ways:

  • BitcoinJ talks to other Bitcoin nodes via Tor
  • Bitmessage talks to other Bitmessage nodes via Tor
  • HTTP requests to blockchain.info are used get the current Bitcoin exchange rate.

Client side files are not currently encrypted. We recommend at least using FileVault.

#dev path high priority

  • GNUstep port to Linux and Windows
  • ability to choose between bid addresses
  • auto-updates
  • app store release
  • automated tests
  • encrypt all local data files and add password login
  • deterministic builds (see https://gitian.org)
  • use tor for blockchain.info bitcoin price updates

#dev path low priority

  • UI for accepting multiple sales on a single post?
  • support stores with namecoin (a namecoin name to bitmessage address entry)
  • option for using separate pubkey for each post
  • ui update, image browsing view option within a category
  • use ntimelock to avoid utx pollution for transactions that fail to reach agreement?

#links

#architecture notes

On starting, the app launches three child processes:

  1. a Tor server, which is used by the Bitmessage and BitcoinJ servers use to route their communications to the Bitmessage network and Bitcoin network (respectively) through the Tor network.

  2. a Bitmessage server, which is used for posting sales to a public Bitmessage channel and for sending messages between buyers and sellers to 1) place and accept bids 2) setup escrow 3) send physical delivery address to seller 4) release escrow via payment or refund

  3. a BitcoinJ server, which is used as the app's' Bitcoin wallet and to construct and trackthe escrow transactions.

#versions

v0.8.9:

  • BitcoinJ now uses Tor
  • POW limited to 1 core
  • image attachments auto resized to fit in 32kb JPEG

v0.8.8

  • server launch fix
  • performance improvements -- caching address valid requests -- coallessing node notifications
You can’t perform that action at this time.