cs244b

所属分类:云数据库/云存储
开发工具:JavaScript
文件大小:13393KB
下载次数:0
上传日期:2015-01-29 02:44:59
上 传 者sh-1993
说明:  斯坦福CS244B分布式系统最终项目-安全对等文件锁
(Stanford CS244B Distributed Systems Final Project - Secure Peer-to-Peer File Locker)

文件列表:
Vagrantfile (1428, 2015-01-29)
configuration1.yml (563, 2015-01-29)
configuration10.yml (467, 2015-01-29)
configuration11.yml (467, 2015-01-29)
configuration12.yml (467, 2015-01-29)
configuration2.yml (466, 2015-01-29)
configuration3.yml (466, 2015-01-29)
configuration4.yml (466, 2015-01-29)
configuration5.yml (466, 2015-01-29)
configuration6.yml (466, 2015-01-29)
configuration7.yml (466, 2015-01-29)
configuration8.yml (466, 2015-01-29)
configuration9.yml (466, 2015-01-29)
deploy.sh (198, 2015-01-29)
doc (0, 2015-01-29)
doc\Chord.md (163, 2015-01-29)
get.png (40588, 2015-01-29)
insert.png (29245, 2015-01-29)
perf.txt (3453, 2015-01-29)
pom.xml (4891, 2015-01-29)
scripts (0, 2015-01-29)
scripts\bootstrap.sh (155, 2015-01-29)
scripts\install.sh (430, 2015-01-29)
scripts\performanceTest.py (1571, 2015-01-29)
scripts\performanceTestRoundRobin.py (1662, 2015-01-29)
scripts\requirements.txt (16, 2015-01-29)
scripts\testdata (0, 2015-01-29)
scripts\testdata\Chord.pdf (194676, 2015-01-29)
scripts\testdata\configuration.yml (466, 2015-01-29)
scripts\testdata\executable.jar (52, 2015-01-29)
scripts\testdata\gondola.jpg (1169384, 2015-01-29)
scripts\testdata\lake.jpg (12171697, 2015-01-29)
scripts\testdata\perf.txt (2109, 2015-01-29)
scripts\testdata\requirements.txt (16, 2015-01-29)
src (0, 2015-01-29)
src\main (0, 2015-01-29)
src\main\java (0, 2015-01-29)
... ...

CS244b-final-project ==================== Secure, distributed, scalable peer-to-peer file locker for Stanford CS 244B Distributed Systems final project. Users can run a server node (a java jar executable) which mirror files of their choice in a decentralized "cloud" of individually untrusted commodity consumer computers, while still ensuring the integrity of replicated files by utilizing keyed-hash message authentication codes (HMAC_SHA256). Our system is cross-platform (it can be ported to any device which is capable of running the Java virtual machine) and utilizes standard TCP/IP networking to promote adoption and usage across the wider internet. Participants in the system are registered in a distributed hash table backed by the Chord algorithm, therefore saves and lookups in the system scale logarithmically in proportion to the number of participating clients. A video demonstration of the system is available at [https://www.youtube.com/watch?v=nDcraNzJPyg](https://www.youtube.com/watch?v=nDcraNzJPyg). ## Eclipse Setup Menu > Help > Install New Software > Add... * Name: M2Eclipse * Location: http://download.eclipse.org/technology/m2e/releases Select All > Next > Finish File > Import > Maven > Existing Maven Projects ## Run in Eclipse Menu > Run > Run Configurations * Name: Server * Project: cs244b-final-project * Main Class: edu.stanford.cs244b.Server * Arguments Tab > Program Arguments: server configuration.yml.local Once the server is running, navigate to [localhost:8078](http://localhost:8078) in your browser. Upload a file; you should receive a response such as {"id":"7c8359ffb8a8a65040246234bb32ff676e7b214501ed737***51e4b272ed2c345","shard":"6d3779b1","sha256":"4bee078a72d4e5b6252f5510123e786d134fd321fd220d28351962***1315e6eb","filename":"icon.png","filetype":"image/png"} Note that uploaded files are saved to the filesystem in the data/ directory. Now go to [http://localhost:8078/api/shard/7c8359ffb8a8a65040246234bb32ff676e7b214501ed737***51e4b272ed2c345](http://localhost:8078/api/shard/7c8359ffb8a8a65040246234bb32ff676e7b214501ed737***51e4b272ed2c345) and you can download the file you just uploaded. Browse to [http://localhost:8078/admin/metrics?pretty=true](http://localhost:8078/admin/metrics?pretty=true). Scroll down to view latency metrics for the shard. ## Chord Ring ## If you start the server without any arguments, then it will assume that it is the first node in the Chord ring. To join an existing Chord ring, specify the ip address of any server in the ring. The server will automatically lookup its correct position in the ring and join it. For example, in eclipse Run > Run Configurations > Arguments > VM arguments: -Ddw.chord.entryHost=192.168.1.4 You may modify the algorithm (SHA-256 hash or HMAC-SHA256 keyed message authentication code - default) used to generate identifiers for objects added to chord ring by passing one of the following parameters: -Ddw.chord.identifier=hmac_sha256 -Ddw.chord.identifier=sha256 These commandline arguments will override any parameters which were set in the configuration*.yml files. ## Running On Multiple Virtual Machines ## 1. Download and install [Vagrant](https://www.vagrantup.com/downloads.html) and [VirtualBox](https://www.virtualbox.org/wiki/Downloads) 2. Pull latest code from one of our two git repositories: git clone https://github.com/akovacs/cs244b.git # OR git clone https://github.com/ajgrover/CS244b-final-project.git 3. In your terminal, cd to the project directory, execute the following command: vagrant up 4. Once the Ubuntu 14.04 Server image has been downloaded, and the 12 virtual machines have booted (note: you can edit the Vagrantfile to reduce number of virtual machines if your computer has limited RAM), install the software on them: ./deploy.sh 5. Optionally, log into the virtual machine and tail the logs. vagrant ssh cs244b-1 tail -f log1.txt 6. Navigate to the [web UI](http://localhost:8080) and watch the Chord distributed hash table in action.

近期下载者

相关文件


收藏者