Tahoe-LAFS Documentation Release 1.X
Total Page:16
File Type:pdf, Size:1020Kb
Tahoe-LAFS Documentation Release 1.x The Tahoe-LAFS Developers Sep 22, 2021 Contents 1 Welcome to Tahoe-LAFS! 3 1.1 What is Tahoe-LAFS?..........................................3 1.2 What is “provider-independent security”?................................3 1.3 Access Control..............................................4 1.4 Get Started................................................4 1.5 License..................................................5 2 Installing Tahoe-LAFS 7 2.1 Microsoft Windows...........................................7 2.2 Linux, BSD, or MacOS.........................................8 3 Building Tahoe-LAFS on Windows9 4 Building Tahoe-LAFS on Linux 11 4.1 Prerequisites............................................... 11 4.2 Install the Latest Tahoe-LAFS Release................................. 12 5 Building Tahoe-LAFS On A Desert Island 13 5.1 How This Works............................................. 14 6 How To Run Tahoe-LAFS 17 6.1 Introduction............................................... 17 6.2 Do Stuff With It............................................. 19 6.3 Socialize................................................. 20 6.4 Complain................................................. 20 7 Magic Wormhole Invites 21 7.1 Magic Wormhole............................................. 21 7.2 Invites and Joins............................................. 21 7.3 Tahoe-LAFS Secret Exchange...................................... 21 8 Configuring a Tahoe-LAFS node 23 8.1 Node Types................................................ 24 8.2 Overall Node Configuration....................................... 24 8.3 Connection Management......................................... 28 8.4 Client Configuration........................................... 31 8.5 Frontend Configuration......................................... 32 i 8.6 Storage Server Configuration...................................... 33 8.7 Storage Server Plugin Configuration................................... 34 8.8 Running A Helper............................................ 34 8.9 Running An Introducer.......................................... 34 8.10 Other Files in BASEDIR......................................... 35 8.11 Introducer Definitions.......................................... 36 8.12 Static Server Definitions......................................... 36 8.13 Other files................................................ 38 8.14 Example................................................. 38 8.15 Old Configuration Files......................................... 39 9 Tahoe-LAFS Architecture 41 9.1 Overview................................................. 41 9.2 The Key-Value Store........................................... 42 9.3 File Encoding............................................... 42 9.4 Capabilities................................................ 43 9.5 Server Selection............................................. 43 9.6 Swarming Download, Trickling Upload................................. 45 9.7 The File Store Layer........................................... 45 9.8 Leases, Refreshing, Garbage Collection................................. 45 9.9 File Repairer............................................... 46 9.10 Security.................................................. 47 9.11 Reliability................................................ 47 10 The Tahoe-LAFS CLI commands 49 10.1 Overview................................................. 49 10.2 CLI Command Overview........................................ 49 10.3 Node Management............................................ 50 10.4 File Store Manipulation......................................... 51 10.5 Storage Grid Maintenance........................................ 57 10.6 Debugging................................................ 57 11 The Tahoe REST-ful Web API 59 11.1 Enabling the web-API port........................................ 60 11.2 Basic Concepts: GET, PUT, DELETE, POST.............................. 60 11.3 URLs................................................... 61 11.4 Slow Operations, Progress, and Cancelling............................... 63 11.5 Programmatic Operations........................................ 64 11.6 Browser Operations: Human-oriented interfaces............................ 73 11.7 Other Useful Pages............................................ 85 11.8 Static Files in /public_html........................................ 88 11.9 Safety and Security Issues – Names vs. URIs.............................. 88 11.10 Concurrency Issues............................................ 89 11.11 Access Blacklist............................................. 89 11.12 URLs and HTTP and UTF-8....................................... 90 12 Tahoe-LAFS SFTP Frontend 93 12.1 SFTP Background............................................ 93 12.2 Tahoe-LAFS Support........................................... 94 12.3 Creating an Account File......................................... 94 12.4 Configuring SFTP Access........................................ 94 12.5 Dependencies............................................... 95 12.6 Immutable and Mutable Files...................................... 95 12.7 Known Issues............................................... 96 ii 13 Download status 97 13.1 Introduction............................................... 97 13.2 What’s involved in a download?..................................... 97 13.3 Data on the download-status page.................................... 98 14 Known Issues 101 14.1 Known Issues in Tahoe-LAFS v1.10.3, released 30-Mar-2016..................... 101 14.2 Known Issues in Tahoe-LAFS v1.9.0, released 31-Oct-2011...................... 105 14.3 Known Issues in Tahoe-LAFS v1.8.2, released 30-Jan-2011...................... 105 15 Contributing to Tahoe-LAFS 107 16 Contributor Code of Conduct 109 17 Release Checklist 111 17.1 Any Contributor............................................. 111 17.2 Privileged Contributor.......................................... 113 17.3 Announcing the Release......................................... 114 18 How To Configure A Server 117 18.1 Manual Configuration.......................................... 117 18.2 Automatic Configuration......................................... 118 18.3 Deployment Scenarios.......................................... 118 19 The Tahoe Upload Helper 121 19.1 Overview................................................. 121 19.2 Setting Up A Helper........................................... 122 19.3 Using a Helper.............................................. 122 19.4 Other Helper Modes........................................... 123 20 The Convergence Secret 125 20.1 What Is It?................................................ 125 20.2 What If I Change My Convergence Secret?............................... 126 20.3 How To Use It.............................................. 126 21 Garbage Collection in Tahoe 127 21.1 Overview................................................. 127 21.2 Client-side Renewal........................................... 128 21.3 Server Side Expiration.......................................... 128 21.4 Expiration Progress........................................... 130 21.5 Future Directions............................................. 130 22 Statement on Backdoors 133 23 Donations 135 23.1 Governance................................................ 135 23.2 Transparent Accounting......................................... 135 23.3 Expenditure Addresses.......................................... 136 23.4 Historical Donation Addresses...................................... 136 23.5 Validation................................................. 136 24 Storage Server Donations 137 24.1 Sending Donations............................................ 137 24.2 Receiving Donations........................................... 138 24.3 Further Reading............................................. 138 iii 25 Expenses paid by donated BTC 139 25.1 Budget Items............................................... 139 26 Things To Be Careful About As We Venture Boldly Forth 143 26.1 Timing Attacks.............................................. 143 27 Avoiding Write Collisions in Tahoe 145 28 The Tahoe BackupDB 147 28.1 Overview................................................. 147 28.2 Schema.................................................. 148 28.3 Upload Operation............................................ 148 28.4 Directory Operations........................................... 149 29 Developer Guide 151 29.1 Pre-commit Checks........................................... 151 30 Ticket Triage 153 30.1 Process.................................................. 153 31 Using Tahoe-LAFS with an anonymizing network: Tor, I2P 155 31.1 Overview................................................. 155 31.2 Use cases................................................. 155 31.3 Software Dependencies......................................... 156 31.4 Connection configuration........................................ 157 31.5 Anonymity configuration......................................... 157 31.6 Performance and security issues..................................... 159 32 Node Keys in Tahoe-LAFS 163 32.1 Why Announcements Are Signed.................................... 163 32.2 How The Node ID Is Computed..................................... 164 32.3 Version Compatibility, Fallbacks For Old Versions........................... 164 32.4 Share Placement............................................. 164 33 Performance costs for some common operations 167 33.1 Publishing