AugurのGitHubリポジトリの概要

[Augur](https://www.augur.net/)プロジェクトの[GitHubリポジトリ](https://github.com/AugurProject)には、32個のリポジトリがあります。
重要なリポジトリを中心に概要をまとめました。

- システム全体で、インストール環境として、Python 2.7.6+, Node.js 8+, and Solidity 0.4.24が必要との事です。(augur-coreリポジトリに書いてありました)

# 重要なリポジトリ

- [augur](https://github.com/AugurProject/augur)リポジトリ
 - Augurプロトコルの概要説明のREADME.mdが入っている。


- [augur.js](https://github.com/AugurProject/augur.js)リポジトリ
 - Augur JavaScript API
 - ほとんどが.jsファイルだが、```script/```に.shファイルもある。
 - ```src/connect/*```や```src/rpc-interface.js```でethrpcを生成しているので、JSON-RPC部分も含むかもしれない。GitHub内の [ethereumjs/ethrpc](https://github.com/ethereumjs/ethrpc)リポジトリ も参照。
 
```
var Augur = require("augur.js");
var augur = new Augur();

var ethereumNode = { http: "http://127.0.0.1:8545", ws: "ws://127.0.0.1:8546" };
var augurNode = "ws://127.0.0.1:9001";

augur.connect({ ethereumNode, augurNode }, (err, connectionInfo) => {
  // do stuff
});
```


- [augur-core](https://github.com/AugurProject/augur-core)リポジトリ
 - Ethereumのコントラクトが入っている。
 - testsディレクトリに、レポーティングや取引のテスト、各関数のテストが書いてある。
 - [Oyente](https://github.com/melonproject/oyente)というスマートコントラクト の解析ツールを使っている。
 - ロードマップや用語集へのリンクもREADME.mdに書かれている。
 - ```source/contracts/factories```: コンストラクタ for universes, markets, fee windows, etc.
 - ```source/contracts/libraries```: データ構造 used elsewhere in the source code.
 - ```source/contracts/reporting```: Creation and manipulation of universes, markets, fee windows, and reporting-related tokens.
 - ```source/contracts/trading```: Functions to create, view, and fill orders, to issue and close out complete sets of shares, and for traders to claim proceeds after markets are closed.


- [Augur Node](https://github.com/AugurProject/augur-node)リポジトリ
 - ノード。ブロックチェーンとやりとりし、UIとの通信も行う。
 - ローカルDB(sqliteやPostgreSQL)の設定も含む。
 - デフォルトでは、httpやWebSocketでブロックチェーンと通信する。
 - Rinkebyテストネットに接続する。
 - Knex.js というSQL文生成?ライブラリを使っている。

- [Augur UI](https://github.com/AugurProject/augur-ui)リポジトリ(augur | client)
 - ブラウザとのインタフェース。
 - JavaScript。
 - ファイル名が「状態/機能名」で入っているので、リバースエンジニアリングする前にファイル名検索するとよい。



- [Augur App](https://github.com/AugurProject/augur-app)リポジトリ
 - デスクトップ・アプリ
 -  Augur UIとAugur Nodeを含む
 -  MacOS/Windows/Linux版のバイナリがある。
 -  ログ出力機能もある。

# ドキュメント
- [docs](https://github.com/AugurProject/docs)リポジトリ
 - Augur JavaScript API documentation
 - http://docs.augur.net のソース。

- [whitepaper](https://github.com/AugurProject/whitepaper)リポジトリ
 - 各国語のホワイトペーパー。LaTeXやPDFファイル。

- [EIPs](https://github.com/AugurProject/EIPs)リポジトリ
 - イーサリアムの改善提案のドキュメント
 - forked from ethereum/EIPs




# ウォーレット
- [MyCrypto](https://github.com/AugurProject/MyCrypto)リポジトリ
 - イーサリアムやERC-20トークンを扱うためのウォーレット？
 - forked from MyCryptoHQ/MyCrypto

- [etherwallet](https://github.com/AugurProject/etherwallet)リポジトリ
 - MyEtherWallet
 - forked from kvhnuke/etherwallet




# 関連プロジェクト

- [speedomatic](https://github.com/AugurProject/speedomatic)リポジトリ(旧：augur-abi)
 - augur用のスマートコントラクト(augur-core)にアクセスするためのABI関連のユーティリティ
 - 一般的なABIを使いたい場合は、ethereumjs-abi を使うようにとのこと。


- [eth-contract-metadata](https://github.com/AugurProject/eth-contract-metadata)リポジトリ
 - MetaMaskでREPトークンを表示できるようにするための画像。申請するとMetaMaskに取り込んでもらえる。
 - forked from MetaMask/eth-contract-metadata

- [augur-ui-extractor](https://github.com/AugurProject/augur-ui-extractor)リポジトリ
 - Augur UI のDockerファイルを作成するスクリプト？

- [augur-ui-sandbox](https://github.com/AugurProject/augur-ui-sandbox)リポジトリ
 - 新しいUIや機能を試すための場所。
 - 2017年7月から更新されていない。

- [electron-metamask-boilerplate](https://github.com/AugurProject/electron-metamask-boilerplate)リポジトリ
 - Electron (Muon) + Metamask Boilerplate
 - ElectronとMetaMaskでデスクトップアプリを作る際に使うひな型。

- [Solium](https://github.com/AugurProject/Solium)リポジトリ
 - Solidityの構文チェックをするlinter。
 - forked from duaraghav8/Solium

- [solidity-flattener](https://github.com/AugurProject/solidity-flattener)リポジトリ
 - Solidityのファイルを、1ファイルにまとめるツール。依存関係も解決するぽい。
 - forked from BlockCatIO/solidity-flattener

- [go-ethereum](https://github.com/AugurProject/go-ethereum)リポジトリ
 - Official Go implementation of the Ethereum protocol https://geth.ethereum.org
 - forked from ethereum/go-ethereum

- [pyethereum](https://github.com/AugurProject/pyethereum)リポジトリ
 - EthereumのPython用ライブラリ？
 - 次世代暗号ネットワーク(?)
 - forked from ethereum/pyethereum

- [py_ecc](https://github.com/AugurProject/py_ecc)リポジトリ
 - Implements optimal ate pairings over the bn_128 curve.
 - forked from ethereum/py_ecc
 - Python implementation of ECC pairing and bn_128 curve operations
 - (Python用の数学関連のライブラリぽいが、なぜforkしたのか不明)


- [bignumber.js](https://github.com/AugurProject/bignumber.js)リポジトリ
 - 整数の精度をいくらでものばせるようにするJavaScriptライブラリ。
 - forked from MikeMcl/bignumber.js

- [react-blockies](https://github.com/AugurProject/react-blockies)リポジトリ
 - イーサリアムのウォーレットからアイコン画像(Identicon)を作るためのReactコンポーネント。


# テスト項目

- [augur-walkthrough](https://github.com/AugurProject/augur-walkthrough)リポジトリ
 - テスト手順やチェックリストが書かれている。

- [augur-bounties](https://github.com/AugurProject/augur-bounties)リポジトリ
 - バグ報告したり、ツールやデバッガの実装をすると、懸賞金をもらえる。

- [augur-audits](https://github.com/AugurProject/augur-audits)リポジトリ
 - augur-coreやSolidity Compilerのコード監査の記録。ZeppelinやCoinspectによる監査。



# プロジェクトのホームページ
- [landing-page](https://github.com/AugurProject/landing-page)リポジトリ
 - Augurのホームページ(https://www.augur.net/ )のソース。htmlとか画像とか。

- [branding](https://github.com/AugurProject/branding)リポジトリ
 - ロゴ画像素材。


# その他のプロジェクト

- [rep-migration](https://github.com/AugurProject/rep-migration)リポジトリ
 - 2018年7月10日のリリースで行われた、REPトークンの移行のためのプロジェクト。
 - [2018/07/10 Augurのローンチ](http://crystalball.be/2018-07-10-augur-launches/)を参照。





# （調査中）

- [ethereum-nodes](https://github.com/AugurProject/ethereum-nodes)リポジトリ
 - Docker images for geth and Parity
 - Augur's Ethereum Nodes

- [ethereumjs-blockstream](https://github.com/AugurProject/ethereumjs-blockstream)リポジトリ
 - Reliable stream of Ethereum blocks
 - forked from ethereumjs/ethereumjs-blockstream
 - forkした理由は不明。

- [redux-thunk-subscribe](https://github.com/AugurProject/redux-thunk-subscribe)リポジトリ
 - Makes store.subscribe available to Redux thunks
 - コードを静的解析して、最適化するツール？

# まとめ
重要な、augur.js/core/Node/UIの4つのリポジトリを調べておけば、あとは適宜参照で良さそうです。

次回は、[JavaScriptでAugurに接続し、マーケット情報を得るやり方](https://qiita.com/jansnap/items/be8af67b7aa172135a2b)を説明します。