From 5b8ca356a2f948165f7801094d6aa5ac90b220d0 Mon Sep 17 00:00:00 2001 From: John Russell Date: Sat, 26 Jan 2013 01:22:46 -0800 Subject: [PATCH] Update README.md --- README.md | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 6daf212..b4d53c9 100644 --- a/README.md +++ b/README.md @@ -7,15 +7,15 @@ Block Viewer visualizes the Bitcoin block chain by building an ownership network ## Dependencies ### Server: -Java 1.8 -Neo4j Enterprise -Gephi Toolkit -OpenVPN (For replication) +* Java +* Neo4j Enterprise +* Gephi Toolkit +* OpenVPN (For replication) ### Client: -Node.js -MySQL -OpenVPN (For replication) +* Node.js +* MySQL +* OpenVPN (For replication) ## Methodology In order to create what is seen at http://blockviewer.com, Block Viewer performs the following: @@ -27,15 +27,17 @@ In order to create what is seen at http://blockviewer.com, Block Viewer performs 4. It finds related transactions between owners and creates a transfers edge between owners, creating the high level owner network: ![Ownership Network](http://i.imgur.com/hfOxS.png) 5. Using each owner's identified addresses, it scrapes several websites (including BitcoinTalk and Bitcoin-OTC) and sees if an owner has been explicitly identified. If so, it creates an "identifies" edge between the address and owner, as seen in the screenshot in step 3. -6. Once the ownership network is constructed, the application exports each owner to a graph, where each component of the graph represents the following: - * **Node Label** - If an owner has been identified to a real world entity such as a bitcointalk.org username, nodes will be tagged with this information under Alias. Otherwise, they will be tagged with a unique owner identifier. - * **Node Size** - The amount of inbound/outbound transactions that have been sent to and from a particular owner will be represented with how large a node is relative to the other nodes in the current graph. - * **Node Color** - Hotter colors will represent recent activity sent from the owner while a cooler color will represent older activity. - * **Edge Color** - Hotter colors will represent recent transactions while cooler colors will represent older ones. - * **Edge Direction** - Following an edge in a clockwise direction will separate inbound vs outbound transactions. +6. Once the ownership network is constructed, the application exports each owner to a graph. 7. It also exports time-division subsections of the network by day, giving users the ability to look at the behavior of the ownership network by time-span instead of by owner. 8. The front end consumes the generated graphs, displaying it to the user. The front-end server uses Neo4j replication to keep the cypher queries fast, and uses the backend's mysql database to fetch the owner graphs +Each component of the graph represents the following: +* **Node Label** - If an owner has been identified to a real world entity such as a bitcointalk.org username, nodes will be tagged with this information under Alias. Otherwise, they will be tagged with a unique owner identifier. +* **Node Size** - The amount of inbound/outbound transactions that have been sent to and from a particular owner will be represented with how large a node is relative to the other nodes in the current graph. +* **Node Color** - Hotter colors will represent recent activity sent from the owner while a cooler color will represent older activity. +* **Edge Color** - Hotter colors will represent recent transactions while cooler colors will represent older ones. +* **Edge Direction** - Following an edge in a clockwise direction will separate inbound vs outbound transactions. +* ## Usage Several command line arguments are passed into blockviewer. To let it build a full, application ready use as seen at blockviewer.com, the backend server would use: ```java @@ -64,3 +66,14 @@ Issues are being tracked in Github. ## Interested? Ideas? I'm here to answer any and all questions and ideas. If you would like to contribute to this project, please let me know! It's very much in its infancy, there is lots of room for improvement. + +## License +MIT License + +Author <2012> + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.