Towards Peer-To-Peer Games: Xp2pilot

Total Page:16

File Type:pdf, Size:1020Kb

Towards Peer-To-Peer Games: Xp2pilot Master Thesis Towards Peer-to-Peer Games: XP2Pilot Jean-Luc Geering [email protected] Dept. of Computer Science Swiss Federal Institute of Technology (ETH) Zurich Summer 2007 Prof. Dr. Roger Wattenhofer Distributed Computing Group Advisors: Stefan Schmid, Thomas Locher Abstract A game is both an interesting and a complex application. Having a shared state makes it a challenging undertaking to develop it in a peer-to-peer setting. XP2Pilot is an implementation of such a game. It is a fully decentralized version of XPilot-NG, built on top of Pulsar. Acknowledgments First of all, I would like to thank Prof. Dr. Wattenhofer for giving me the opportunity to work on this most interesting and challenging project. During this truly unique experience, I benefitted not only on a technical but also on a personal level. Stefan Schmid and Thomas Locher, my faithful advisors, thank you for not breaking my e-bike when you took it for a ride. Special thanks to Remo Meier who allowed me to use Pulsar and was always quick to respond to my numerous questions.1 Cordial thanks to the open-source communities. They make the world a better place. At least the virtual one. To the Swiss taxpayers, thank you for financing my education. Keep up the good work, the SFITZ2 is such an awesome institution. To the TIK, thank you for lending me Funghi. He was a good companion who never let me down during the six months we spent together. I wished all laptops would behave like he did. To the Swiss Federal Railways, thank you for letting me feed Funghi on your trains. We could spend even more time working together. Thanks to my family, friends and fellow students for playing my game when it was neither finished nor fun. Thanks, Jean-Paul W¨urth.Your nonsense full of meaning helped me in a crucial mo- ment. To all those who pretended listening to me when I was complaining - I hope we can still be friends. Let's not forget all the brave readers of this report: Thank you and good luck! 1Yes, I know, I should have read the documentation first. 2Aka EPFZ aka ETHZ. 2 Contents 1 Introduction 5 1.1 Common Uses of Peer-to-Peer . 5 1.1.1 File Sharing . 5 1.1.2 Multimedia Live Streaming . 5 1.1.3 Distributed Hash Tables . 6 1.2 Peer-to-Peer and Games . 6 2 Components 7 2.1 Game . 7 2.2 Network: Peer-to-Peer Overlay . 7 3 Architecture and Design 9 3.1 The Game . 9 3.2 From XPilot-NG to XP2Pilot ........................ 10 3.3 Network Layer . 11 3.4 Game Engine . 11 3.4.1 Server Role . 11 3.4.2 Registrar Role . 12 3.4.3 Client Role . 12 3.5 The Pieces and their State . 12 3.6 Network Dynamics . 13 3.6.1 Piece Subscriptions . 14 3.6.2 Piece Transfer States . 15 3.7 Network States . 17 3.8 Player Management . 18 3.9 A Final Comment . 19 4 Implementation 21 4.1 Spring . 21 4.2 The ch.dongxi.xpilot.game.* classes . 21 4.3 The ch.dongxi.xpilot.legacy.* classes . 21 4.3.1 The ch.dongxi.xpilot.legacy.map package . 22 4.3.2 The ch.dongxi.xpilot.legacy.net.packet package . 22 4.4 The ch.dongxi.xpilot.net.* classes . 22 4.5 The ch.dongxi.xpilot.p2p.* classes . 22 4.5.1 The ch.dongxi.xpilot.legacy.p2p.message package . 23 4.6 The ch.dongxi.xpilot.pulsar.* classes . 23 4.7 The ch.dongxi.xpilot.tasks.* classes . 24 4.8 The ch.dongxi.xpilot.view.* classes . 24 4.9 The ch.dongxi.xpilot.world.* classes . 25 4.10 Threads . 25 5 Conclusion 27 3 Chapter 1 Introduction There are many peer-to-peer applications, but most of them do not have a shared state. On the other hand, games have to deal with player interaction, i.e. a shared state. Would it not be interesting to store and manipulate a shared state in a not only distributed but also fully decentralized system, in other words, build a peer-to-peer game? 1.1 Common Uses of Peer-to-Peer 1.1.1 File Sharing The most prominent use of peer-to-peer technology nowadays is file sharing. The Gnutella network is one example of an early successful application, and today Bit- torrent [1] is the dominant file sharing protocol. The characteristics of file sharing are that the content is static, i.e. the file being shared does not change,1 there are no timing constrains, and the goal is to transmit information from one to many other nodes. If we only look at the information that has been sent after the transfer is complete, it is equivalent to one server sending the same content to many clients.2 1.1.2 Multimedia Live Streaming The new trend in peer-to-peer computing is to replace a streaming server with a peer- to-peer distribution scheme. In Switzerland Zattoo3 is already a popular live video streaming system, although it does not deliver very good quality. Joost is a service by the makers of Kazaa and Skype. Pulsar [2], is a new peer-to-peer based protocol which promises good performance. We find some of the same characteristics in streaming as in file sharing: the goal is to distribute content from one server to many clients in an efficient and robust way. If we consider each frame of a video stream separately, the content is also static, but small and with a short life-span. But contrarily to file sharing there are timing constrains. The frames have to be delivered in order and on time. A delay of a few seconds is acceptable, but certainly a few hours or days like we know it from file sharing applications, is out of question. 1In case it does change, it will be shared as a new file. 2Of course it is far more efficient, and even if the first node goes offline the data keeps spreading. 3http://www.zattoo.com 5 1.1.3 Distributed Hash Tables A distributed hash table (DHT) is a fully decentralized system for storing, looking up and retrieving key-value pairs. Important features include scaling to a large number of nodes, fast message routing and good performance and resilience under churn. Well known examples of DHTs are CAN [3], Chord [4] and Pastry [5]. A DHT consists of a keyspace, i.e. the set of allowed keys, for example the 16 bytes bit strings, and a keyspace partitioning scheme describing how to split ownership among participating nodes. To illustrate this, let us consider a circular keyspace. Each node has its own ID that serves as a key or, if it is not in the right format, can be hashed into a key. This ID defines its position on the circle. The node owns and is responsible for all the keys between its ID and the ID of the next node on the circle. The nodes connect to neighbours and arrange themselves in an overlay network. The different protocols define to which and to how many neighbours a node has to connect. This determines how fast a protocol can route messages, how well it scales and handles churn. The data stored in a DHT is also static. Direct modification of the values is not possible. To update a value, a new value is inserted with an identical key, to replace the old one. 1.2 Peer-to-Peer and Games Games are an interesting application for peer-to-peer computing. While a shared state and player interactions need to be taken care of (i.e., the content is not static), absolute correctness and consistency do not have to be guaranteed (a game is no banking soft- ware). As long as they do not trouble the user too often, errors can be tolerated. In order for a game to be easily distributed, locality of interest is essential [6]. A peer-to- peer game where every node needs to know about everything is certainly feasible, but it would not benefit of most advantages of a distributed system. Depending on the game, a node's visibility can be limited without influencing the user experience, e.g. any 2D war game with limited screen size and fog of war.4 On the contrary, it would be absurd to play chess seeing only a quarter of the board at the time. There are also timing constrains to be considered when implementing a game, as the user expects a fast feedback for his actions. In this sense, a game might be even more sensitive to delays than a live streaming application. Any game will have its share of cheaters, and so will peer-to-peer ones. The architecture of the system should include anti-cheating mechanisms whenever possible, and make it hard to cheat when it cannot be prevented. 4 [7] further reduced the amount of data transmited by defining focus sets. 6 Chapter 2 Components 2.1 Game Instead of writing a new game from scratch, we chose a existing open-source client-server game. Two multiplayer games, both realtime, were considered: Quake 3 is a first person shooter and has been used many times for research (e.g., [7], [8]). Its engine is freely available, but some components still have to be bought to actually run the game. The game is also fairly complex, has advanced graphics and dead reckoning. XPilot (Fig. 2.1) is an Asteroids-like 2D multiplayer game, where items can be collected to enhance the offense or defense characteristics of the player's ship.
Recommended publications
  • System Tools Reference Manual for Filenet Image Services
    IBM FileNet Image Services Version 4.2 System Tools Reference Manual SC19-3326-00 IBM FileNet Image Services Version 4.2 System Tools Reference Manual SC19-3326-00 Note Before using this information and the product it supports, read the information in “Notices” on page 1439. This edition applies to version 4.2 of IBM FileNet Image Services (product number 5724-R95) and to all subsequent releases and modifications until otherwise indicated in new editions. © Copyright IBM Corporation 1984, 2019. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents About this manual 17 Manual Organization 18 Document revision history 18 What to Read First 19 Related Documents 19 Accessing IBM FileNet Documentation 20 IBM FileNet Education 20 Feedback 20 Documentation feedback 20 Product consumability feedback 21 Introduction 22 Tools Overview 22 Subsection Descriptions 35 Description 35 Use 35 Syntax 35 Flags and Options 35 Commands 35 Examples or Sample Output 36 Checklist 36 Procedure 36 May 2011 FileNet Image Services System Tools Reference Manual, Version 4.2 5 Contents Related Topics 36 Running Image Services Tools Remotely 37 How an Image Services Server can hang 37 Best Practices 37 Why an intermediate server works 38 Cross Reference 39 Backup Preparation and Analysis 39 Batches 39 Cache 40 Configuration 41 Core Files 41 Databases 42 Data Dictionary 43 Document Committal 43 Document Deletion 43 Document Services 44 Document Retrieval 44 Enterprise Backup/Restore (EBR)
    [Show full text]
  • Artificial and Computational Intelligence in Games
    Artificial and Computational Intelligence in Games A Follow-up to Dagstuhl Seminar 12191 Edited by Simon M. Lucas Michael Mateas Mike Preuss Pieter Spronck Julian Togelius DagstuhlFollow-Ups – Vol.6 www.dagstuhl.de/dfu Editors Simon M. Lucas Michael Mateas School of Computer Science and Center for Games and Playable Media Electronic Engineering University of California, Santa Cruz University of Essex [email protected] [email protected] Mike Preuss Pieter Spronck European Research Center for Tilburg Center for Cognition and Communication Information Systems Tilburg University University of Münster [email protected] [email protected] Julian Togelius Center for Computer Games Research IT University of Copenhagen [email protected] ACM Classification 1998 I.2.1 Applications and Expert Systems: Games ISBN 978-3-939897-62-0 Published online and open access by Schloss Dagstuhl – Leibniz-Zentrum für Informatik GmbH, Dagstuhl Publishing, Saarbrücken/Wadern, Germany. Online available at http://www.dagstuhl.de/dagpub/978-3-939897-62-0. Publication date November, 2013 Bibliographic information published by the Deutsche Nationalbibliothek The Deutsche Nationalbibliothek lists this publication in the Deutsche Nationalbibliografie; detailed bibliographic data are available in the Internet at http://dnb.d-nb.de. License This work is licensed under a Creative Commons Attribution 3.0 Unported license: http://creativecommons.org/licenses/by/3.0/legalcode. In brief, this license authorizes each and everybody to share (to copy, distribute and transmit) the work under the following conditions, without impairing or restricting the authors’ moral rights: Attribution: The work must be attributed to its authors. The copyright is retained by the corresponding authors.
    [Show full text]
  • 25 Efficient Compilation of CUDA Kernels for High-Performance
    25 Efficient Compilation of CUDA Kernels for High-Performance Computing on FPGAs ALEXANDROS PAPAKONSTANTINOU, University of Illinois at Urbana-Champaign KARTHIK GURURAJ, University of California, Los Angeles JOHN A. STRATTON and DEMING CHEN, University of Illinois at Urbana-Champaign JASON CONG, University of California, Los Angeles WEN-MEIW.HWU, University of Illinois at Urbana-Champaign The rise of multicore architectures across all computing domains has opened the door to heterogeneous multiprocessors, where processors of different compute characteristics can be combined to effectively boost the performance per watt of different application kernels. GPUs, in particular, are becoming very popular for speeding up compute-intensive kernels of scientific, imaging, and simulation applications. New programming models that facilitate parallel processing on heterogeneous systems containing GPUs are spreading rapidly in the computing community. By leveraging these investments, the developers of other accelerators have an opportunity to significantly reduce the programming effort by supporting those accelerator models already gaining popularity. In this work, we adapt one such language, the CUDA programming model, into a new FPGA design flow called FCUDA, which efficiently maps the coarse- and fine-grained parallelism exposed in CUDA onto the reconfigurable fabric. Our CUDA-to-FPGA flow employs AutoPilot, an advanced high-level synthesis tool (available from Xilinx) which enables high-abstraction FPGA programming. FCUDA is based on a source-to-source compilation that transforms the SIMT (Single Instruction, Multiple Thread) CUDA code into task-level parallel C code for AutoPilot. We describe the details of our CUDA-to-FPGA flow and demonstrate the highly competitive performance of the resulting customized FPGA multicore accelerators.
    [Show full text]
  • Download Talk 1.3
    Download talk 1.3 CLICK TO DOWNLOAD Talk to Siri Android latest APK Download and Install. Chat With Siri Artifial Intelligence. Talk Force is an Internet voice (VoIP) program that you can talk to people over the Internet from your PC. This program lets the user surf different channels and speak to multiple Talk Force users. 1/3 TeamTalk 4 is a conferencing system which enables a group of people to collaborate and share information. Every member of a group can communicate with other members in . Google Talk apk is also made available for rest of the android phones. If you have Android & above running and rooted phone then follow below steps to install Google Talk apk with Voice & Video chat feature. Download Google Talk apk. Connect phone to PC and run following commands on adb console. adb remount. Download our free update detector to keep your software up to date Mumble Thorvald Natvig - (Open-Source) Version: Size: Date People tend to simplify things, so when they talk about Mumble they either talk about "Mumble" the client application or about "Mumble & Murmur" the whole voice chat application suite. Advertisement. 1/3 Pidgin is a chat program which lets you log in to accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on MSN, talking to a friend on Google Talk, and sitting in a Yahoo chat room all at the same time. Download Windows Client Version Windows Manually Install Zip File Download Mac OSX Client Version 64bit Download Linux Client Version By downloading Mumble you agree to the renuzap.podarokideal.ru Services Agreement.
    [Show full text]
  • Red Hat Linux 6.0
    Red Hat Linux 6.0 The Official Red Hat Linux Installation Guide Red Hat Software, Inc. Durham, North Carolina Copyright ­c 1995, 1996, 1997, 1998, 1999 Red Hat Software, Inc. Red Hat is a registered trademark and the Red Hat Shadow Man logo, RPM, the RPM logo, and Glint are trademarks of Red Hat Software, Inc. Linux is a registered trademark of Linus Torvalds. Motif and UNIX are registered trademarks of The Open Group. Alpha is a trademark of Digital Equipment Corporation. SPARC is a registered trademark of SPARC International, Inc. Products bearing the SPARC trade- marks are based on an architecture developed by Sun Microsystems, Inc. Netscape is a registered trademark of Netscape Communications Corporation in the United States and other countries. TrueType is a registered trademark of Apple Computer, Inc. Windows is a registered trademark of Microsoft Corporation. All other trademarks and copyrights referred to are the property of their respective owners. ISBN: 1-888172-28-2 Revision: Inst-6.0-Print-RHS (04/99) Red Hat Software, Inc. 2600 Meridian Parkway Durham, NC 27713 P. O. Box 13588 Research Triangle Park, NC 27709 (919) 547-0012 http://www.redhat.com While every precaution has been taken in the preparation of this book, the publisher assumes no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. The Official Red Hat Linux Installation Guide may be reproduced and distributed in whole or in part, in any medium, physical or electronic, so long as this copyright notice remains intact and unchanged on all copies.
    [Show full text]
  • From OO to FPGA: Fitting Round Objects Into Square Hardware
    SANDIA REPORT SAND2012-10192 Unlimited Release Printed September 2012 From OO to FPGA: Fitting Round Objects into Square Hardware Stephen Kou, Jens Palsberg, Jeffrey Brooks Prepared by Sandia National Laboratories Albuquerque, New Mexico 87185 and Livermore, California 94550 Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation, for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000. Approved for public release; further dissemination unlimited. Issued by Sandia National Laboratories, operated for the United States Department of Energy by Sandia Corporation. NOTICE: This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government, nor any agency thereof, nor any of their employees, nor any of their contractors, subcontractors, or their employees, make any warranty, express or implied, or assume any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or rep- resent that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government, any agency thereof, or any of their contractors or subcontractors. The views and opinions expressed herein do not necessarily state or reflect those of the United States Government, any agency thereof, or any of their contractors. Printed in the United States of America. This report has been reproduced directly from the best available copy.
    [Show full text]
  • What Good Is a Linux Client?
    Preparing Today for Linux® Tomorrow What Good is a Linux Client? A Linux White Paper Preface Anyone who has followed the progress of Linux the past few years has noted the surprising gains that Linux has made in server operating system market share and “mindshare” against the entrenched opposition, notably Microsoft® Windows NT®, Novell Netware and various varieties of UNIX®. A complete Linux network, of course, would require Linux clients (networked PCs or terminals) as well. Therefore, an important question is, “Is Linux a viable desktop operating system for general business use?” or must we continue to be confined to the Windows world for our non-server needs? And what about laptop support, or a Small Office/Home Office (SOHO) user or home user, who does not need a network server? Is there a place for Linux in a stand-alone environment? These are some of the questions this paper addresses. I must confess that until recently I was merely a bystander watching with curiosity from the sidelines—without any real involvement— the progress Linux has made. So writing this paper not only gave me the excuse to join in on the action, but it also provides you with the perspective of a Linux “newbie” who is attempting to find the applications and utilities needed to create a working system. The conventional wisdom so far is that Linux is not “ready for prime time” as anything but a network operating system. We shall test this notion to see if I can find commercial, shareware and/or freeware programs for Linux to replace the existing applications I currently use with Windows.
    [Show full text]
  • Metadefender Core V4.14.2
    MetaDefender Core v4.14.2 © 2018 OPSWAT, Inc. All rights reserved. OPSWAT®, MetadefenderTM and the OPSWAT logo are trademarks of OPSWAT, Inc. All other trademarks, trade names, service marks, service names, and images mentioned and/or used herein belong to their respective owners. Table of Contents About This Guide 11 Key Features of Metadefender Core 12 1. Quick Start with MetaDefender Core 13 1.1. Installation 13 Operating system invariant initial steps 13 Basic setup 14 1.1.1. Configuration wizard 14 1.2. License Activation 19 1.3. Process Files with MetaDefender Core 19 2. Installing or Upgrading Metadefender Core 20 2.1. Recommended System Requirements 20 System Requirements For Server 20 Browser Requirements for the Metadefender Core Management Console 22 2.2. Installing Metadefender 22 Installation 22 Installation notes 23 2.2.1. Installing Metadefender Core using command line 23 2.2.2. Installing Metadefender Core using the Install Wizard 25 2.3. Upgrading MetaDefender Core 25 Upgrading from MetaDefender Core 3.x 25 Upgrading from MetaDefender Core 4.x 26 2.4. Metadefender Core Licensing 26 2.4.1. Activating Metadefender Licenses 26 2.4.2. Checking Your Metadefender Core License 33 2.5. Performance and Load Estimation 34 What to know before reading the results: Some factors that affect performance 34 How test results are calculated 35 Test Reports 35 Performance Report - Multi-Scanning On Linux 35 Performance Report - Multi-Scanning On Windows 39 2.6. Special installation options 42 Use RAMDISK for the tempdirectory 42 3. Configuring MetaDefender Core 46 3.1. Management Console 46 3.2.
    [Show full text]
  • Server-Side Verification of Client Behavior
    Server-side Verification of Client Behavior in Online Games∗ Darrell Bethea Robert A. Cochran Michael K. Reiter University of North Carolina at Chapel Hill {djb,rac,reiter}@cs.unc.edu July 11, 2010 Abstract Online gaming is a lucrative and growing industry but one that is slowed by cheating that compromises the gaming experience and hence drives away players (and revenue). In this paper we develop a technique by which game developers can enable game operators to validate the behavior of game clients as being consistent with valid execution of the sanctioned client software. Our technique employs symbolic execution of the client software to extract constraints on client- side state implied by each client-to-server message, and then uses constraint solving to determine whether the sequence of client-to-server messages can be “explained” by any possible user inputs, in light of the server-to-client messages already received. The requisite constraints and solving components can be developed either simultaneously with the game or retroactively for existing games. We demonstrate our approach in two case studies: one of the open-source game XPilot, and one of a game similar to Pac-Man of our own design. 1 Introduction Multi-player online games are very popular and profitable and are growing more so. Since 1996 the computer game industry has quadrupled — in 2008 alone, worldwide video-game software sales grew 20 percent to $32 billion [29]. Estimates place revenue from online games at $11 billion, with games such as World of Warcraft, which has more than 10 million subscribers worldwide, bringing in around $1 billion in revenue for parent company Blizzard Entertainment [1, 14].
    [Show full text]
  • Punctuated Anytime Learning and the Xpilot-AI Combat Environment Phillip Fritzsche Connecticut College, [email protected]
    Connecticut College Digital Commons @ Connecticut College Computer Science Honors Papers Computer Science Department 2011 Punctuated Anytime Learning and the Xpilot-AI Combat Environment Phillip Fritzsche Connecticut College, [email protected] Follow this and additional works at: http://digitalcommons.conncoll.edu/comscihp Part of the Artificial Intelligence and Robotics Commons Recommended Citation Fritzsche, Phillip, "Punctuated Anytime Learning and the Xpilot-AI Combat Environment" (2011). Computer Science Honors Papers. 1. http://digitalcommons.conncoll.edu/comscihp/1 This Honors Paper is brought to you for free and open access by the Computer Science Department at Digital Commons @ Connecticut College. It has been accepted for inclusion in Computer Science Honors Papers by an authorized administrator of Digital Commons @ Connecticut College. For more information, please contact [email protected]. The views expressed in this paper are solely those of the author. Fall 08 Spring 11 Punctuated Anytime Learning and the Xpilot-AI Combat Environment Phil Fritzsche; Advisor: Gary Parker In this paper, research is presented on an application of Punctuated Anytime Learning with Fitness Biasing, a type of computational intelligence and evolutionary learning, for real-time learning of autonomous agents controllers in the space combat game Xpilot. Punctuated Anytime Learning was originally developed as a means of effective learning in the field of evolutionary robotics. An analysis was performed on the game environment to determine optimal environmental settings for use during learning, and Fitness Biasing is employed using this information to learn intelligent behavior for a video game agent controller in real-time. Xpilot-AI, an Xpilot add-on designed for testing learning systems, is used alongside evolutionary learning techniques to evolve optimal behavior in the background while periodic checks in normal game play are used to compensate for errors produced by running the system at a high frame rate.
    [Show full text]
  • Michael J. Sherman [email protected] 703.772.0147
    Michael J. Sherman [email protected] 703.772.0147 SUMMARY Technical software development manager working as a hybrid developer / team manager. Software developer with 20 years experience designing and developing modern web application platforms, modeling and simulation software, system architectures, research and development projects, iOS mobile apps, and large deployments on the cloud in use daily by customers. Adept at visual design and user experience. Skilled at communicating with C-level executives and leading a group of devel- opers with a product vision using an agile process, continually designing and developing delivered software products. EDUCATION • Bachelor of Science, Computer Science, Carnegie Mellon University, 1998 • Bachelor of Science, Physics, Carnegie Mellon University, 1998 EMPLOYMENT EXPERIENCE • Haystax Technology - June 2014 to present - VP, Software Development – Designed, managed, developed, deployed, and maintained a modern web application platform stack for multi-tenant, multi-app delivery of public safety and threat intelligence functions using AngularJS, Python, Flask, JavaScript, HTML5, REST APIs, MongoDB, and de- ployed on a Linux cluster on AWS (https://constellation.haystax.com/) as well as disconnected on-premises installation – Lead the team and worked on a massively scalable Bayesian analytics engine platform built using Python, Celery, MongoDB, Docker – Release manager on three parallel product offerings, wrote documen- tation, updated servers – Implemented CI process to integrate Git,
    [Show full text]
  • Secure Content Distribution Using Untrusted Servers Kevin Fu
    Secure content distribution using untrusted servers Kevin Fu MIT Computer Science and Artificial Intelligence Lab in collaboration with M. Frans Kaashoek (MIT), Mahesh Kallahalla (DoCoMo Labs), Seny Kamara (JHU), Yoshi Kohno (UCSD), David Mazières (NYU), Raj Rajagopalan (HP Labs), Ron Rivest (MIT), Ram Swaminathan (HP Labs) For Peter Szolovits slide #1 January-April 2005 How do we distribute content? For Peter Szolovits slide #2 January-April 2005 We pay services For Peter Szolovits slide #3 January-April 2005 We coerce friends For Peter Szolovits slide #4 January-April 2005 We coerce friends For Peter Szolovits slide #4 January-April 2005 We enlist volunteers For Peter Szolovits slide #5 January-April 2005 Fast content distribution, so what’s left? • Clients want ◦ Authenticated content ◦ Example: software updates, virus scanners • Publishers want ◦ Access control ◦ Example: online newspapers But what if • Servers are untrusted • Malicious parties control the network For Peter Szolovits slide #6 January-April 2005 Taxonomy of content Content Many-writer Single-writer General purpose file systems Many-reader Single-reader Content distribution Personal storage Public Private For Peter Szolovits slide #7 January-April 2005 Framework • Publishers write➜ content, manage keys • Clients read/verify➜ content, trust publisher • Untrusted servers replicate➜ content • File system protects➜ data and metadata For Peter Szolovits slide #8 January-April 2005 Contributions • Authenticated content distribution SFSRO➜ ◦ Self-certifying File System Read-Only
    [Show full text]