diff --git a/test/test-repo/api b/test/test-repo/api new file mode 100644 index 00000000..ec31f33a --- /dev/null +++ b/test/test-repo/api @@ -0,0 +1 @@ +/ip4/127.0.0.1/tcp/5001 \ No newline at end of file diff --git a/test/test-repo/blocks/2F/CIQEUWUVLBXVFYSYCHHSCRTXCYHGIOBXKWUMKFR3UPAFHQ5WK5362FQ.data b/test/test-repo/blocks/2F/CIQEUWUVLBXVFYSYCHHSCRTXCYHGIOBXKWUMKFR3UPAFHQ5WK5362FQ.data deleted file mode 100644 index 41456196..00000000 --- a/test/test-repo/blocks/2F/CIQEUWUVLBXVFYSYCHHSCRTXCYHGIOBXKWUMKFR3UPAFHQ5WK5362FQ.data +++ /dev/null @@ -1,4 +0,0 @@ - -ys# js-ipfs-repo -Implementation of the IPFS repo spec (https://github.com/ipfs/specs/tree/master/repo) in JavaScript -s \ No newline at end of file diff --git a/test/test-repo/blocks/75/CIQMB7DLJFKD267QJ2B5FJNHZPTSVA7IB6OHXSQ2XSVEEKMKK6RT75I.data b/test/test-repo/blocks/75/CIQMB7DLJFKD267QJ2B5FJNHZPTSVA7IB6OHXSQ2XSVEEKMKK6RT75I.data deleted file mode 100644 index c9885c45..00000000 Binary files a/test/test-repo/blocks/75/CIQMB7DLJFKD267QJ2B5FJNHZPTSVA7IB6OHXSQ2XSVEEKMKK6RT75I.data and /dev/null differ diff --git a/test/test-repo/blocks/AE/CIQONICFQZH7QVU6IPSIM3AK7AD554D3BWZPAGEAQYQOWMFZQDUUAEI.data b/test/test-repo/blocks/AE/CIQONICFQZH7QVU6IPSIM3AK7AD554D3BWZPAGEAQYQOWMFZQDUUAEI.data deleted file mode 100644 index 6860441a..00000000 --- a/test/test-repo/blocks/AE/CIQONICFQZH7QVU6IPSIM3AK7AD554D3BWZPAGEAQYQOWMFZQDUUAEI.data +++ /dev/null @@ -1,3 +0,0 @@ -/ -" gq†žÿ6\u8~:çò©6~ágĂæÖZ.èždirectT2 -" 6(€Ą•%ʄ»żț.À°ÓŸ5(ûŒÈț·òûś ab recursive·T \ No newline at end of file diff --git a/test/test-repo/blocks/AP/CIQHAKDLTL5GMIFGN5YVY4BA22FPHUIODJEXS4LCTQDWA275XAJDAPI.data b/test/test-repo/blocks/AP/CIQHAKDLTL5GMIFGN5YVY4BA22FPHUIODJEXS4LCTQDWA275XAJDAPI.data deleted file mode 100644 index 74de75af..00000000 Binary files a/test/test-repo/blocks/AP/CIQHAKDLTL5GMIFGN5YVY4BA22FPHUIODJEXS4LCTQDWA275XAJDAPI.data and /dev/null differ diff --git a/test/test-repo/blocks/C4/CIQDDZ5EDQK5AP7LRTLZHQZUR2R3GECRFV3WPKNL7PL2SKFIL2LXC4Y.data b/test/test-repo/blocks/C4/CIQDDZ5EDQK5AP7LRTLZHQZUR2R3GECRFV3WPKNL7PL2SKFIL2LXC4Y.data deleted file mode 100644 index ecce1053..00000000 --- a/test/test-repo/blocks/C4/CIQDDZ5EDQK5AP7LRTLZHQZUR2R3GECRFV3WPKNL7PL2SKFIL2LXC4Y.data +++ /dev/null @@ -1,4 +0,0 @@ -5 -" ž˜”ŚŸFŰ_ëu۔álúšzćS?Ž™|ÚČë­ŚPc@ js-ipfs-repoŸ - - \ No newline at end of file diff --git a/test/test-repo/blocks/QF/CIQGPALRQ24P6NS4OWHTQ7R247ZI7KJWP3QWPQYS43LFULQC5ANLQFI.data b/test/test-repo/blocks/EP/CIQOEA4URV75WXHSIBY7SYTVOFIEO5657YM3T6DTHFRQYSUZAGRLEPY.data similarity index 98% rename from test/test-repo/blocks/QF/CIQGPALRQ24P6NS4OWHTQ7R247ZI7KJWP3QWPQYS43LFULQC5ANLQFI.data rename to test/test-repo/blocks/EP/CIQOEA4URV75WXHSIBY7SYTVOFIEO5657YM3T6DTHFRQYSUZAGRLEPY.data index a8f98693..02f8aad3 100644 Binary files a/test/test-repo/blocks/QF/CIQGPALRQ24P6NS4OWHTQ7R247ZI7KJWP3QWPQYS43LFULQC5ANLQFI.data and b/test/test-repo/blocks/EP/CIQOEA4URV75WXHSIBY7SYTVOFIEO5657YM3T6DTHFRQYSUZAGRLEPY.data differ diff --git a/test/test-repo/blocks/FJ/CIQMSSWEB56MYVN7BGLPIMICMCRBABQCR6FC5CFHLZV74LDT2PZIFJQ.data b/test/test-repo/blocks/FJ/CIQMSSWEB56MYVN7BGLPIMICMCRBABQCR6FC5CFHLZV74LDT2PZIFJQ.data new file mode 100644 index 00000000..65f9d26d --- /dev/null +++ b/test/test-repo/blocks/FJ/CIQMSSWEB56MYVN7BGLPIMICMCRBABQCR6FC5CFHLZV74LDT2PZIFJQ.data @@ -0,0 +1,3 @@ +/ +" ;)á=֝Ț€\SjXÇÜaJț,dŒËU„U8Ï+védirectT2 +" ^šè5'Œ·T)ˆaXÁ˜+éŸì”ă”L'TZBAJ| recursive‹U \ No newline at end of file diff --git a/test/test-repo/blocks/FN/CIQIXBZMUTXFC5QIGMLJNXLLHZOPGSL2PBC65D4UIVWM6TI5F5TAFNI.data b/test/test-repo/blocks/FN/CIQIXBZMUTXFC5QIGMLJNXLLHZOPGSL2PBC65D4UIVWM6TI5F5TAFNI.data deleted file mode 100644 index 3da92595..00000000 --- a/test/test-repo/blocks/FN/CIQIXBZMUTXFC5QIGMLJNXLLHZOPGSL2PBC65D4UIVWM6TI5F5TAFNI.data +++ /dev/null @@ -1,24 +0,0 @@ - -ž°The MIT License (MIT) - -Copyright (c) 2015 IPFS - -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. - -° \ No newline at end of file diff --git a/test/test-repo/blocks/G7/CIQCDCXJ6563LCORPOAY63YIR5EM5R4TXRVPZC2BWPOB5FNVRYEXG7I.data b/test/test-repo/blocks/G7/CIQCDCXJ6563LCORPOAY63YIR5EM5R4TXRVPZC2BWPOB5FNVRYEXG7I.data new file mode 100644 index 00000000..2aa38838 --- /dev/null +++ b/test/test-repo/blocks/G7/CIQCDCXJ6563LCORPOAY63YIR5EM5R4TXRVPZC2BWPOB5FNVRYEXG7I.data @@ -0,0 +1,308 @@ + +ìcäc# IPFS Repo JavaScript Implementation + +[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) +[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/) +[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) +[![Build Status](https://travis-ci.org/ipfs/js-ipfs-repo.svg)](https://travis-ci.org/ipfs/js-ipfs-repo) [![Circle CI](https://circleci.com/gh/ipfs/js-ipfs-repo.svg?style=svg)](https://circleci.com/gh/ipfs/js-ipfs-repo) +[![Coverage Status](https://coveralls.io/repos/github/ipfs/js-ipfs-repo/badge.svg?branch=master)](https://coveralls.io/github/ipfs/js-ipfs-repo?branch=master) [![Dependency Status](https://david-dm.org/diasdavid/js-peer-id.svg?style=flat-square)](https://david-dm.org/ipfs/js-ipfs-repo) +[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard) +![](https://img.shields.io/badge/npm-%3E%3D3.0.0-orange.svg?style=flat-square) +![](https://img.shields.io/badge/Node.js-%3E%3D4.0.0-orange.svg?style=flat-square) + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/ipfs-js-repo.svg)](https://saucelabs.com/u/ipfs-js-repo) + +> Implementation of the IPFS repo spec (https://github.com/ipfs/specs/tree/master/repo) in JavaScript + +This is the implementation of the [IPFS repo spec](https://github.com/ipfs/specs/tree/master/repo) in JavaScript. + +## Table of Contents + +- [Background](#background) +- [Install](#install) + - [npm](#npm) + - [Use in Node.js](#use-in-nodejs) + - [Use in a browser with browserify, webpack or any other bundler](#use-in-a-browser-with-browserify-webpack-or-any-other-bundler) + - [Use in a browser Using a script tag](#use-in-a-browser-using-a-script-tag) +- [Usage](#usage) +- [API](#api) +- [Contribute](#contribute) +- [License](#license) + +## Background + +Here is the architectural reasoning for this repo: + +```bash + ┌────────────────────────────────────────┐ + │ IPFSRepo │ + └────────────────────────────────────────┘ + ┌─────────────────┐ + │ / │ + ├────────────────── + │ Datastore │ + └─────────────────┘ + │ + ┌───────────┮───────────┐ + │ │ + ┌─────────────────┐ ┌─────────────────┐ + │ /blocks │ │ /datastore │ + ├────────────────── ├────────────────── + │ Datastore │ │ LevelDatastore │ + └─────────────────┘ └─────────────────┘ + +┌────────────────────────────────────────┐ ┌────────────────────────────────────────┐ +│ IPFSRepo - Default Node.js │ │ IPFSRepo - Default Browser │ +└────────────────────────────────────────┘ └────────────────────────────────────────┘ + ┌─────────────────┐ ┌─────────────────┐ + │ / │ │ / │ + ├────────────────── ├────────────────── + │ FsDatastore │ │LevelJSDatastore │ + └─────────────────┘ └─────────────────┘ + │ │ + ┌───────────┮───────────┐ ┌───────────┮───────────┐ + │ │ │ │ +┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ +│ /blocks │ │ /datastore │ │ /blocks │ │ /datastore │ +├────────────────── ├────────────────── ├────────────────── ├────────────────── +│ FlatfsDatastore │ │LevelDBDatastore │ │LevelJSDatastore │ │LevelJSDatastore │ +└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ +``` + +This provides a well defined interface for creating and interacting with an IPFS repo. + +## Install + +### npm + +```sh +> npm install ipfs-repo +``` + +### Use in Node.js + +```js +var IPFSRepo = require('ipfs-repo') +``` + +### Use in a browser with browserify, webpack or any other bundler + +```js +var IPFSRepo = require('ipfs-repo') +``` + +### Use in a browser Using a script tag + +Loading this module through a script tag will make the `IpfsRepo` obj available in the global namespace. + +```html + + + +``` + +## Usage + +Example: + +```js +const Repo = require('ipfs-repo') +const repo = new Repo('/tmp/ipfs-repo') + +repo.init({ cool: 'config' }, (err) => { + if (err) { + throw err + } + + repo.open((err) => { + if (err) { + throw err + } + + console.log('repo is ready') + }) +}) +``` + +This now has created the following structure, either on disk or as an in memory representation: + +``` +├── blocks +│   ├── SHARDING +│ └── _README +├── config +├── datastore +└── version +``` + +## API + +### Setup + +#### `new Repo(path[, options])` + +Creates an IPFS Repo. + +Arguments: + +* `path` (string, mandatory): the path for this repo +* `options` (object, optional): may contain the following values + * `lock` (string, defaults to `"fs"` in Node.js, `"memory"` in the browser): what type of lock to use. Lock has to be acquired when opening. + * `storageBackends` (object, optional): may contain the following values, which should each be a class implementing the [datastore interface](https://github.com/ipfs/interface-datastore#readme): + * `root` (defaults to [`datastore-fs`](https://github.com/ipfs/js-datastore-fs#readme) in Node.js and [`datastore-level`](https://github.com/ipfs/js-datastore-level#readme) in the browser). Defines the back-end type used for gets and puts of values at the root (`repo.set()`, `repo.get()`) + * `blocks` (defaults to [`datastore-fs`](https://github.com/ipfs/js-datastore-fs#readme) in Node.js and [`datastore-level`](https://github.com/ipfs/js-datastore-level#readme) in the browser). Defines the back-end type used for gets and puts of values at `repo.blocks`. + * `datastore` (defaults to [`datastore-level`](https://github.com/ipfs/js-datastore-level#readme)). Defines the back-end type used as the key-valye store used for gets and puts of values at `repo.datastore`. + +```js +const repo = new Repo('path/to/repo') +``` + +#### `repo.init (callback)` + +Creates the necessary folder structure inside the repo. + +#### `repo.open (callback)` + +Locks the repo. + +#### `repo.close (callback)` + +Unlocks the repo. + +#### `repo.exists (callback)` + +Tells whether this repo exists or not. Calls back with `(err, bool)`. + +### Repos + +Root repo: + +#### `repo.put (key, value:Buffer, callback)` + +Put a value at the root of the repo. + +* `key` can be a buffer, a string or a [Key](https://github.com/ipfs/interface-datastore#keys). + +#### `repo.get (key, callback)` + +Get a value at the root of the repo. + +* `key` can be a buffer, a string or a [Key](https://github.com/ipfs/interface-datastore#keys). +* `callback` is a callback function `function (err, result:Buffer)` + +[Blocks](https://github.com/ipfs/js-ipfs-block#readme): + +#### `repo.blocks.put (block:Block, callback)` + +* `block` should be of type [Block](https://github.com/ipfs/js-ipfs-block#readme). + +#### `repo.blocks.putMany (blocks, callback)` + +Put many blocks. + +* `block` should be an array of type [Block](https://github.com/ipfs/js-ipfs-block#readme). + +#### `repo.blocks.get (cid, callback)` + +Get block. + +* `cid` is the content id of [type CID](https://github.com/ipld/js-cid#readme). +* `callback` is a callback function `function (err, result:Buffer)` + +Datastore: + +#### `repo.datastore` + +This is contains a full implementation of [the `interface-datastore` API](https://github.com/ipfs/interface-datastore#api). + + +### Utils + +#### `repo.config` + +Instead of using `repo.set('config')` this exposes an API that allows you to set and get a decoded config object, as well as, in a safe manner, change any of the config values individually. + +##### `repo.config.set(key:string, value, callback)` + +Set a config value. `value` can be any object that is serializable to JSON. + +* `key` is a string specifying the object path. Example: + +```js +repo.config.set('a.b.c', 'c value', (err) => { + if (err) { throw err } + repo.config.get((err, config) => { + if (err) { throw err } + assert.equal(config.a.b.c, 'c value') + }) +}) +``` + +##### `repo.config.get(value, callback)` + +Set the whole config value. `value` can be any object that is serializable to JSON. + +##### `repo.config.get(key:string, callback)` + +Get a config value. `callback` is a function with the signature: `function (err, value)`, wehre the ` +value` is of the same type that was set before. + +* `key` is a string specifying the object path. Example: + +```js +repo.config.get('a.b.c', (err, value) => { + if (err) { throw err } + console.log('config.a.b.c = ', value) +}) +``` + +##### `repo.config.get(callback)` + +Get the entire config value. `callback` is a function with the signature: `function (err, configValue:Object)`. + +#### `repo.config.exists(callback)` + +Whether the config sub-repo exists. Calls back with `(err, bool)`. + +#### `repo.version` + +##### `repo.version.get (callback)` + +Gets the repo version. + +##### `repo.version.set (version:number, callback)` + +Sets the repo version + +#### `repo.apiAddr` + +#### `repo.apiAddr.get (callback)` + +Gets the API address. + +#### `repo.apiAddr.set (value, callback)` + +Sets the API address. + +* `value` should be a [Multiaddr](https://github.com/multiformats/js-multiaddr) or a String representing a valid one. + +## Notes + +- [Explanation of how repo is structured](https://github.com/ipfs/js-ipfs-repo/pull/111#issuecomment-279948247) + +## Contribute + +There are some ways you can make this module better: + +- Consult our [open issues](https://github.com/ipfs/js-ipfs-repo/issues) and take on one of them +- Help our tests reach 100% coverage! + +This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). + +[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) + +## License + +[MIT](LICENSE) +äc \ No newline at end of file diff --git a/test/test-repo/blocks/GQ/CIQH7OEYWXL34RWYL7VXLWEU4FWPVGT24VJT7DUZPTNLF25N25IGGQA.data b/test/test-repo/blocks/GQ/CIQH7OEYWXL34RWYL7VXLWEU4FWPVGT24VJT7DUZPTNLF25N25IGGQA.data deleted file mode 100644 index ee87b9db..00000000 --- a/test/test-repo/blocks/GQ/CIQH7OEYWXL34RWYL7VXLWEU4FWPVGT24VJT7DUZPTNLF25N25IGGQA.data +++ /dev/null @@ -1,4 +0,0 @@ -0 -" ‹‡,€îQv3–Ęk>\óIzxEElÏM/f”LICENSE»1 -" JZ•XoRâXÏ!Fwd87UšĆ;ŁÀSöWwí README.md{ - \ No newline at end of file diff --git a/test/test-repo/blocks/I7/CIQGE2VHIPKM4NFWKSH2DGUZIRE66VZHMPSOBVY2YU67EWMSHH4CI7Y.data b/test/test-repo/blocks/I7/CIQGE2VHIPKM4NFWKSH2DGUZIRE66VZHMPSOBVY2YU67EWMSHH4CI7Y.data new file mode 100644 index 00000000..39b8f166 --- /dev/null +++ b/test/test-repo/blocks/I7/CIQGE2VHIPKM4NFWKSH2DGUZIRE66VZHMPSOBVY2YU67EWMSHH4CI7Y.data @@ -0,0 +1,93 @@ + +àŰ{ + "name": "ipfs-repo", + "version": "0.14.0", + "description": "IPFS Repo implementation", + "main": "src/index.js", + "browser": { + "rimraf": false, + "datastore-fs": "datastore-level", + "leveldown": "level-js", + "./src/lock.js": "./src/lock-memory.js", + "./src/default-options.js": "./src/default-options-browser.js" + }, + "scripts": { + "test": "aegir-test", + "test:node": "aegir-test node", + "test:browser": "aegir-test browser", + "build": "aegir-build", + "lint": "aegir-lint", + "release": "aegir-release --docs", + "release-minor": "aegir-release --type minor --docs", + "release-major": "aegir-release --type major --docs", + "coverage": "aegir-coverage", + "coverage-publish": "aegir-coverage publish", + "docs": "aegir-docs" + }, + "repository": { + "type": "git", + "url": "https://github.com/ipfs/js-ipfs-repo.git" + }, + "keywords": [ + "IPFS", + "libp2p", + "datastore" + ], + "pre-commit": [ + "lint", + "test" + ], + "homepage": "https://github.com/ipfs/js-ipfs-repo", + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + }, + "devDependencies": { + "aegir": "^11.0.2", + "chai": "^4.0.2", + "dirty-chai": "^2.0.0", + "lodash": "^4.17.4", + "memdown": "^1.2.4", + "multihashes": "~0.4.5", + "ncp": "^2.0.0", + "pre-commit": "^1.2.2", + "rimraf": "^2.6.1" + }, + "dependencies": { + "async": "^2.5.0", + "base32.js": "^0.1.0", + "cids": "^0.5.0", + "datastore-core": "^0.2.0", + "datastore-fs": "^0.2.0", + "datastore-level": "^0.4.2", + "debug": "^2.6.8", + "interface-datastore": "^0.2.2", + "ipfs-block": "~0.6.0", + "level-js": "timkuijsten/level.js#idbunwrapper", + "leveldown": "^1.7.2", + "lock-me": "^1.0.2", + "lodash.get": "^4.4.2", + "lodash.has": "^4.5.2", + "lodash.set": "^4.3.2", + "multiaddr": "^2.3.0", + "safe-buffer": "^5.1.1" + }, + "license": "MIT", + "contributors": [ + "Brian Hoffman ", + "David Dias ", + "Dmitriy Ryajov ", + "Francisco Baio Dias ", + "Friedel Ziegelmayer ", + "Greenkeeper ", + "Justin Chase ", + "Lars-Magnus Skog ", + "Pau Ramon Revilla ", + "Richard Littauer ", + "Stephen Whitmore ", + "greenkeeper[bot] ", + "nginnever ", + "npmcdn-to-unpkg-bot " + ] +} +Ű \ No newline at end of file diff --git a/test/test-repo/blocks/JA/CIQHS34HCZMO72ZWZBHY5SBVURQIA4LDBBVVTHZMZE5KPUQSVNVHJAQ.data b/test/test-repo/blocks/JA/CIQHS34HCZMO72ZWZBHY5SBVURQIA4LDBBVVTHZMZE5KPUQSVNVHJAQ.data new file mode 100644 index 00000000..2469a1a1 --- /dev/null +++ b/test/test-repo/blocks/JA/CIQHS34HCZMO72ZWZBHY5SBVURQIA4LDBBVVTHZMZE5KPUQSVNVHJAQ.data @@ -0,0 +1,3 @@ +5 +" bj§CÔÎ4¶TĄš™DIïW'cäàŚĆ=òY’9ű$ package.jsonă + \ No newline at end of file diff --git a/test/test-repo/blocks/JN/CIQPHMHGQLLZXC32FQQW2YVM4KGFORVFJAQYY55VK3WJGLZ2MS4RJNQ.data b/test/test-repo/blocks/JN/CIQPHMHGQLLZXC32FQQW2YVM4KGFORVFJAQYY55VK3WJGLZ2MS4RJNQ.data new file mode 100644 index 00000000..27088364 --- /dev/null +++ b/test/test-repo/blocks/JN/CIQPHMHGQLLZXC32FQQW2YVM4KGFORVFJAQYY55VK3WJGLZ2MS4RJNQ.data @@ -0,0 +1,3 @@ + + +ipfs \ No newline at end of file diff --git a/test/test-repo/blocks/VO/CIQGFTQ7FSI2COUXWWLOQ45VUM2GUZCGAXLWCTOKKPGTUWPXHBNIVOY.data b/test/test-repo/blocks/M4/CIQOLBQZSZAODJGGH6RYYVBUXHTS3SM5EORZDU63LYPEFUAFE4SBM4I.data similarity index 89% rename from test/test-repo/blocks/VO/CIQGFTQ7FSI2COUXWWLOQ45VUM2GUZCGAXLWCTOKKPGTUWPXHBNIVOY.data rename to test/test-repo/blocks/M4/CIQOLBQZSZAODJGGH6RYYVBUXHTS3SM5EORZDU63LYPEFUAFE4SBM4I.data index 2dd80560..f2bf4f8b 100644 --- a/test/test-repo/blocks/VO/CIQGFTQ7FSI2COUXWWLOQ45VUM2GUZCGAXLWCTOKKPGTUWPXHBNIVOY.data +++ b/test/test-repo/blocks/M4/CIQOLBQZSZAODJGGH6RYYVBUXHTS3SM5EORZDU63LYPEFUAFE4SBM4I.data @@ -1,5 +1,5 @@ -ž – # 0.1 - Quick Start +œ ” # 0.1 - Quick Start This is a set of short examples with minimal explanation. It is meant as a "quick start". Soon, we'll write a longer tour :-) @@ -44,7 +44,7 @@ References: Get: - ipfs get foo2 + ipfs get -o foo2 diff foo foo2 @@ -57,11 +57,11 @@ Objects: Pin + GC: - ipfs pin -r - ipfs gc + ipfs pin add + ipfs repo gc ipfs ls - ipfs unpin -r - ipfs gc + ipfs pin rm + ipfs repo gc Daemon: @@ -82,7 +82,8 @@ Mount: (warning: fuse is finicky!) ipfs mount - cd /ipfs/< + cd /ipfs/ + ls Tool: @@ -111,4 +112,4 @@ Browse: markdown renderer app: http://localhost:8080/ipfs/QmX7M9CiYXjVeFnkfVGf3y5ixTZ2ACeSGyL1vBJY1HvQPp/mdown -– \ No newline at end of file +” \ No newline at end of file diff --git a/test/test-repo/blocks/HD/CIQDDVW2EZIJF4NQH7WJNESD7XHQSXA5EGJVNTPVHD7444C2KLKXHDI.data b/test/test-repo/blocks/N2/CIQDWKPBHXLJ3XVELRJZA2SYY7OGCSX6FRSIZS2VQQPVKOA2Z4VXN2I.data similarity index 99% rename from test/test-repo/blocks/HD/CIQDDVW2EZIJF4NQH7WJNESD7XHQSXA5EGJVNTPVHD7444C2KLKXHDI.data rename to test/test-repo/blocks/N2/CIQDWKPBHXLJ3XVELRJZA2SYY7OGCSX6FRSIZS2VQQPVKOA2Z4VXN2I.data index 5ea0edda..7e1e7f1e 100644 Binary files a/test/test-repo/blocks/HD/CIQDDVW2EZIJF4NQH7WJNESD7XHQSXA5EGJVNTPVHD7444C2KLKXHDI.data and b/test/test-repo/blocks/N2/CIQDWKPBHXLJ3XVELRJZA2SYY7OGCSX6FRSIZS2VQQPVKOA2Z4VXN2I.data differ diff --git a/test/test-repo/blocks/O6/CIQOYW2THIZBRGI7IN33ROGCKOFZLXJJ2MPKYZBTV4H3N7GYHXMAO6A.data b/test/test-repo/blocks/O6/CIQOYW2THIZBRGI7IN33ROGCKOFZLXJJ2MPKYZBTV4H3N7GYHXMAO6A.data deleted file mode 100644 index 7b58d6c8..00000000 --- a/test/test-repo/blocks/O6/CIQOYW2THIZBRGI7IN33ROGCKOFZLXJJ2MPKYZBTV4H3N7GYHXMAO6A.data +++ /dev/null @@ -1,3 +0,0 @@ -/ -" æ@ŠĂśŹšԆDŻÉùg«âȘçÆAś»éŠ7directT2 -" “;AÓÔPŒßôY0ßőkźù}ĂEç=š”p«á ûč recursiveáT \ No newline at end of file diff --git a/test/test-repo/blocks/5V/CIQFFRR4O52TS2Z7QLDDTF32OIR4FWLKT5YLL7MLDVIT7DC3NHOK5VA.data b/test/test-repo/blocks/OO/CIQBT4N7PS5IZ5IG2ZOUGKFK27IE33WKGJNDW2TY3LSBNQ34R6OVOOQ.data similarity index 82% rename from test/test-repo/blocks/5V/CIQFFRR4O52TS2Z7QLDDTF32OIR4FWLKT5YLL7MLDVIT7DC3NHOK5VA.data rename to test/test-repo/blocks/OO/CIQBT4N7PS5IZ5IG2ZOUGKFK27IE33WKGJNDW2TY3LSBNQ34R6OVOOQ.data index 951bfe04..77034827 100644 --- a/test/test-repo/blocks/5V/CIQFFRR4O52TS2Z7QLDDTF32OIR4FWLKT5YLL7MLDVIT7DC3NHOK5VA.data +++ b/test/test-repo/blocks/OO/CIQBT4N7PS5IZ5IG2ZOUGKFK27IE33WKGJNDW2TY3LSBNQ34R6OVOOQ.data @@ -1,5 +1,5 @@ -€ű IPFS Alpha Security Notes +’ Š IPFS Alpha Security Notes We try hard to ensure our system is safe and robust, but all software has bugs, especially new software. This distribution is meant to be an @@ -15,9 +15,13 @@ Please note the following: user provided data. But please point any problems out to us in a github issue, or email security@ipfs.io privately. +- security@ipfs.io GPG key: + - 4B9665FB 92636D17 7C7A86D3 50AAE8A9 59B13AF3 + - https://pgp.mit.edu/pks/lookup?op=get&search=0x50AAE8A959B13AF3 + - ipfs uses encryption for all communication, but it's NOT PROVEN SECURE YET! It may be totally broken. For now, the code is included to make sure we benchmark our operations with encryption in mind. In the future, there will be an "unsafe" mode for high performance intranet apps. If this is a blocking feature for you, please contact us. -ű \ No newline at end of file +Š \ No newline at end of file diff --git a/test/test-repo/blocks/RQ/CIQGPZHNWKMUTP4X4VJYCKHWEL3A6UHYWGT2SVEOIQYOVOC2RMJBRQQ.data b/test/test-repo/blocks/RQ/CIQGPZHNWKMUTP4X4VJYCKHWEL3A6UHYWGT2SVEOIQYOVOC2RMJBRQQ.data new file mode 100644 index 00000000..33e7bc4f Binary files /dev/null and b/test/test-repo/blocks/RQ/CIQGPZHNWKMUTP4X4VJYCKHWEL3A6UHYWGT2SVEOIQYOVOC2RMJBRQQ.data differ diff --git a/test/test-repo/blocks/XO/CIQJGO2B2N75IUEM372FSMG76VV256I4PXBULZZ5ASNLK4FL4EG7XOI.data b/test/test-repo/blocks/RY/CIQKVNGIGQHPMLDVIATUPL3YPUYSLNHT5HJ2USSAZZO5GUTAVSYQRYY.data similarity index 99% rename from test/test-repo/blocks/XO/CIQJGO2B2N75IUEM372FSMG76VV256I4PXBULZZ5ASNLK4FL4EG7XOI.data rename to test/test-repo/blocks/RY/CIQKVNGIGQHPMLDVIATUPL3YPUYSLNHT5HJ2USSAZZO5GUTAVSYQRYY.data index d899663b..5cebb55f 100644 Binary files a/test/test-repo/blocks/XO/CIQJGO2B2N75IUEM372FSMG76VV256I4PXBULZZ5ASNLK4FL4EG7XOI.data and b/test/test-repo/blocks/RY/CIQKVNGIGQHPMLDVIATUPL3YPUYSLNHT5HJ2USSAZZO5GUTAVSYQRYY.data differ diff --git a/test/test-repo/blocks/S5/CIQHBGZNZRPWVEFNMTLP4OS5EAVHFMCX2HD7FZUC2B3WUU3D4LGKS5A.data b/test/test-repo/blocks/S5/CIQHBGZNZRPWVEFNMTLP4OS5EAVHFMCX2HD7FZUC2B3WUU3D4LGKS5A.data deleted file mode 100644 index 3a99c365..00000000 --- a/test/test-repo/blocks/S5/CIQHBGZNZRPWVEFNMTLP4OS5EAVHFMCX2HD7FZUC2B3WUU3D4LGKS5A.data +++ /dev/null @@ -1,3 +0,0 @@ -4 -" Y”„9_)ažô€Ëč2ŸRĆm™Ć–keà9đ˜»ï js-ipfs-repo - \ No newline at end of file diff --git a/test/test-repo/blocks/SB/CIQMNAV4TX2DAU5DPES65DFU3KLKFK6EJVAIKNVWIDKR3UCGX2LOSBI.data b/test/test-repo/blocks/SB/CIQMNAV4TX2DAU5DPES65DFU3KLKFK6EJVAIKNVWIDKR3UCGX2LOSBI.data new file mode 100644 index 00000000..4c619f21 --- /dev/null +++ b/test/test-repo/blocks/SB/CIQMNAV4TX2DAU5DPES65DFU3KLKFK6EJVAIKNVWIDKR3UCGX2LOSBI.data @@ -0,0 +1,3 @@ +/ +" ;)á=֝Ț€\SjXÇÜaJț,dŒËU„U8Ï+védirectT2 +" ȘŽÈ4ö,u@'GŻx}1%ŽóéÓȘJ@Î]ÓR`Ź±ă recursiveáT \ No newline at end of file diff --git a/test/test-repo/blocks/TW/CIQFEAGMNNXXTYKYQSANT6IBNTFN7WR5RPD5F6GN6MBKUUO25DNOTWQ.data b/test/test-repo/blocks/U7/CIQF5KHIGUT3ZN2UFEDYQYKYYGMCX2ISX3WLLY4UJQTVIWSCB5AUU7A.data similarity index 99% rename from test/test-repo/blocks/TW/CIQFEAGMNNXXTYKYQSANT6IBNTFN7WR5RPD5F6GN6MBKUUO25DNOTWQ.data rename to test/test-repo/blocks/U7/CIQF5KHIGUT3ZN2UFEDYQYKYYGMCX2ISX3WLLY4UJQTVIWSCB5AUU7A.data index 10aa2ae4..44191cf9 100644 Binary files a/test/test-repo/blocks/TW/CIQFEAGMNNXXTYKYQSANT6IBNTFN7WR5RPD5F6GN6MBKUUO25DNOTWQ.data and b/test/test-repo/blocks/U7/CIQF5KHIGUT3ZN2UFEDYQYKYYGMCX2ISX3WLLY4UJQTVIWSCB5AUU7A.data differ diff --git a/test/test-repo/blocks/UN/CIQOMBKARLB7PAITVSNH7VEGIQJRPL6J7FT2XYVKAXT4MQPXXPUYUNY.data b/test/test-repo/blocks/UN/CIQOMBKARLB7PAITVSNH7VEGIQJRPL6J7FT2XYVKAXT4MQPXXPUYUNY.data deleted file mode 100644 index b6539897..00000000 Binary files a/test/test-repo/blocks/UN/CIQOMBKARLB7PAITVSNH7VEGIQJRPL6J7FT2XYVKAXT4MQPXXPUYUNY.data and /dev/null differ diff --git a/test/test-repo/blocks/V2/CIQFIFKJWK4S7LN2N6IHF64AEZZDKWGGUVG7JNRNTYBQJ4ALX6JGV2Q.data b/test/test-repo/blocks/V2/CIQFIFKJWK4S7LN2N6IHF64AEZZDKWGGUVG7JNRNTYBQJ4ALX6JGV2Q.data new file mode 100644 index 00000000..c2aa971d --- /dev/null +++ b/test/test-repo/blocks/V2/CIQFIFKJWK4S7LN2N6IHF64AEZZDKWGGUVG7JNRNTYBQJ4ALX6JGV2Q.data @@ -0,0 +1,3 @@ +2 +" !Šéś}”‰Ń{oHÎǓŒjü‹AłÜ•”Ž s} README.mdïc + \ No newline at end of file diff --git a/test/test-repo/blocks/V3/CIQJEFSTFKB33VFP24TN55TBQT5H7T37KCTQMVM6Z6IOJPWVPPYHV3Q.data b/test/test-repo/blocks/V3/CIQJEFSTFKB33VFP24TN55TBQT5H7T37KCTQMVM6Z6IOJPWVPPYHV3Q.data new file mode 100644 index 00000000..9c9015c3 --- /dev/null +++ b/test/test-repo/blocks/V3/CIQJEFSTFKB33VFP24TN55TBQT5H7T37KCTQMVM6Z6IOJPWVPPYHV3Q.data @@ -0,0 +1,3 @@ +/ +" ;)á=֝Ț€\SjXÇÜaJț,dŒËU„U8Ï+védirectT2 +" ┍Û\ò@qùbuqPGwĘțčűs9c J™ąČ? recursive”U \ No newline at end of file diff --git a/test/test-repo/blocks/CY/CIQDMKFEUGKSLXMEXO774EZOYCYNHPRVFD53ZSAU7237F67XDSQGCYQ.data b/test/test-repo/blocks/VP/CIQL7ROGT73FOVB23WYGP4F6LU5WSQKMNZHPN6IGKKQU62FWLSH7VPY.data similarity index 99% rename from test/test-repo/blocks/CY/CIQDMKFEUGKSLXMEXO774EZOYCYNHPRVFD53ZSAU7237F67XDSQGCYQ.data rename to test/test-repo/blocks/VP/CIQL7ROGT73FOVB23WYGP4F6LU5WSQKMNZHPN6IGKKQU62FWLSH7VPY.data index bbe6bda7..6affa52f 100644 Binary files a/test/test-repo/blocks/CY/CIQDMKFEUGKSLXMEXO774EZOYCYNHPRVFD53ZSAU7237F67XDSQGCYQ.data and b/test/test-repo/blocks/VP/CIQL7ROGT73FOVB23WYGP4F6LU5WSQKMNZHPN6IGKKQU62FWLSH7VPY.data differ diff --git a/test/test-repo/blocks/WS/CIQDIIAHGSIWR6TXBONXKL3LKJHZWQMXKJO7ZJOGM6MYLW3OGOLIWSA.data b/test/test-repo/blocks/WS/CIQDIIAHGSIWR6TXBONXKL3LKJHZWQMXKJO7ZJOGM6MYLW3OGOLIWSA.data new file mode 100644 index 00000000..a28611f4 --- /dev/null +++ b/test/test-repo/blocks/WS/CIQDIIAHGSIWR6TXBONXKL3LKJHZWQMXKJO7ZJOGM6MYLW3OGOLIWSA.data @@ -0,0 +1,3 @@ +/ +" ;)á=֝Ț€\SjXÇÜaJț,dŒËU„U8Ï+védirectT2 +" żĆƟöWT:Ę°gđŸ];iALnNöùRĄOh¶\úż recursive·T \ No newline at end of file diff --git a/test/test-repo/config b/test/test-repo/config index 5811699b..5a9765f5 100644 --- a/test/test-repo/config +++ b/test/test-repo/config @@ -1,16 +1,18 @@ { "Identity": { - "PeerID": "QmQ2zigjQikYnyYUSXZydNXrDRhBut2mubwJBaLXobMt3A", - "PrivKey": "CAASpgkwggSiAgEAAoIBAQC2SKo/HMFZeBml1AF3XijzrxrfQXdJzjePBZAbdxqKR1Mc6juRHXij6HXYPjlAk01BhF1S3Ll4Lwi0cAHhggf457sMg55UWyeGKeUv0ucgvCpBwlR5cQ020i0MgzjPWOLWq1rtvSbNcAi2ZEVn6+Q2EcHo3wUvWRtLeKz+DZSZfw2PEDC+DGPJPl7f8g7zl56YymmmzH9liZLNrzg/qidokUv5u1pdGrcpLuPNeTODk0cqKB+OUbuKj9GShYECCEjaybJDl9276oalL9ghBtSeEv20kugatTvYy590wFlJkkvyl+nPxIH0EEYMKK9XRWlu9XYnoSfboiwcv8M3SlsjAgMBAAECggEAZtju/bcKvKFPz0mkHiaJcpycy9STKphorpCT83srBVQi59CdFU6Mj+aL/xt0kCPMVigJw8P3/YCEJ9J+rS8BsoWE+xWUEsJvtXoT7vzPHaAtM3ci1HZd302Mz1+GgS8Epdx+7F5p80XAFLDUnELzOzKftvWGZmWfSeDnslwVONkL/1VAzwKy7Ce6hk4SxRE7l2NE2OklSHOzCGU1f78ZzVYKSnS5Ag9YrGjOAmTOXDbKNKN/qIorAQ1bovzGoCwx3iGIatQKFOxyVCyO1PsJYT7JO+kZbhBWRRE+L7l+ppPER9bdLFxs1t5CrKc078h+wuUr05S1P1JjXk68pk3+kQKBgQDeK8AR11373Mzib6uzpjGzgNRMzdYNuExWjxyxAzz53NAR7zrPHvXvfIqjDScLJ4NcRO2TddhXAfZoOPVH5k4PJHKLBPKuXZpWlookCAyENY7+Pd55S8r+a+MusrMagYNljb5WbVTgN8cgdpim9lbbIFlpN6SZaVjLQL3J8TWH6wKBgQDSChzItkqWX11CNstJ9zJyUE20I7LrpyBJNgG1gtvz3ZMUQCn3PxxHtQzN9n1P0mSSYs+jBKPuoSyYLt1wwe10/lpgL4rkKWU3/m1Myt0tveJ9WcqHh6tzcAbb/fXpUFT/o4SWDimWkPkuCb+8j//2yiXk0a/T2f36zKMuZvujqQKBgC6B7BAQDG2H2B/ijofp12ejJU36nL98gAZyqOfpLJ+FeMz4TlBDQ+phIMhnHXA5UkdDapQ+zA3SrFk+6yGk9Vw4Hf46B+82SvOrSbmnMa+PYqKYIvUzR4gg34rL/7AhwnbEyD5hXq4dHwMNsIDq+l2elPjwm/U9V0gdAl2+r50HAoGALtsKqMvhv8HucAMBPrLikhXP/8um8mMKFMrzfqZ+otxfHzlhI0L08Bo3jQrb0Z7ByNY6M8epOmbCKADsbWcVre/AAY0ZkuSZK/CaOXNX/AhMKmKJh8qAOPRY02LIJRBCpfS4czEdnfUhYV/TYiFNnKRj57PPYZdTzUsxa/yVTmECgYBr7slQEjb5Onn5mZnGDh+72BxLNdgwBkhO0OCdpdISqk0F0Pxby22DFOKXZEpiyI9XYP1C8wPiJsShGm2yEwBPWXnrrZNWczaVuCbXHrZkWQogBDG3HGXNdU4MAWCyiYlyinIBpPpoAJZSzpGLmWbMWh28+RJS6AQX6KHrK1o2uw==" + "PeerID": "QmQJPPKEd1a1zLrsDzmzKMnbkkNNmCziUMsXvvkLbjPg1c", + "PrivKey": "CAASqQkwggSlAgEAAoIBAQC6rWI46zRrseaaQq94Y14LJczstp0boYRr7vzg3jugJOqGhqzD+t88vmelYuyI0bJkoMI8WkfSBT0OYbmwszgzNFvYvZNPvfgzt2qLODU1/3PP0ihYcO42yAoX3KWlExuX1xi/nNaUvMPGF4oMucp6PN2o/A2uAv0jsnAeb8hJM4MNs5aQoI5gby2yxtM9mc78UkdV1MZ00IvOdrU2IViNwTVre/PwjbaR4RPcF40+/E2zVJG/z8wOMnpkKAkIxCSjJcaRcxR1bAfP/cKLbpxrpnQlHgVEBVhIaqkd3i5i1+dG8VgsD5LZPh/hLjldXiSYrNMO70Ksne6sc7nL/3UhAgMBAAECggEBAKqKe5FETz+T5vhGs8doACJvBie7LQxxImj4jE1iuVY0Y41Cu9LO/eKgkE+ncDAOYstLkidQ0wwrfPwGi33CPTWKP95iUpInGvkkN1G4p+QM2+CgPfuOMBIb7hyelzWXnz24ZAOpZN+9E52FI7k8gp3pvRcELfsq/9f8zDECLhewRjZitiY5ewfBKsK5LFKQSRg8DIVIKq4iqi7QMRRwbFDtDLcUHJepXSTRhmhWr5b/23O8OxnHExtjXMFqtBzvaAuZPnw2whr8ujV3W+5PyY+btx6M0k/dDQe2dFSJWm8AKLF8AL+houl2vtnFQ47yeYisWd02BcR91DyF5u6hxYECgYEA8b1UlUgCJ1h4MLTt0HOk+JwccJtyLoofe/y8/i4sMtjUZ4kiyIlEUrmPaE3qcNsUOG5eldz4nfN4AYRG4UQwmMFehpGC5pxH/kW8xwC9iFxDbkrNwJ8T5Jc8EQmFZ9BTXviQ3d5ViO06gtOiAdf2L/ci/qazCR7eowdjvbUso0MCgYEAxbCFZjj0L7+Zuyl6Znv7A1raJUKTGR8J5OsP6lIcRq0EfC6OcoCS6bx7FIbM0gkgGj+F/1l1bonfCcCDv5x4tRZzVUCz2KrDEwo/RCv1Y47ipuusao8fTTlO5tgESl4jAvaD1mfZom9BslO4sk3CxXJyAuMJUCc/8To6HLPclcsCgYEAwcuRknd+2oIPIKT7fcAoAfJMzm2f1PWAFgrgjDkBz+WKKlKDIxcAQf1mnSzRhJXtGOxKQYQ7f4zeqQCdPhxHhT6IBAOFWFDzWkIX+8V5LGci27l2RzSAYyJm0hW68CXPoHRO1r9V/QaJgLYey7GROJS8Zj/HiclInJPg/wXOejcCgYBjiwcg+fy7LldSjwg7IqK6hbzilitLsv1gb5yL+NyUGfrwLOE9dtCDMY0oQNhRypaHoQTwFzOyfWn5lx7AFSISzUM14mas6w9fPwGsahYeE4y9UF55KagxUnIQeyVt7QjkLQ0loRVNXYhPKykNX2p70aznFztRSPJBnXg1i7u/EQKBgQC8iZQF/5vwgVN3FgEugru9DKUOWAXMXWcMENRgQ9kiUNU7cwqszQyOk/zmNXrrIbdzn+4/H4gBNRw+dy0t1D5nG7+AuMn1J9WmRS0NF6eF43ttRRmERxiYwRssBs0JLaQWaobmEqcMNCygm1BCqQrKfmY2oI3HDOukMwgMpfZsSQ==" }, "Datastore": { - "Type": "", - "Path": "", - "StorageMax": "", - "StorageGCWatermark": 0, - "GCPeriod": "", + "Type": "leveldb", + "Path": "/Users/pedroteixeira/.ipfs/datastore", + "StorageMax": "10GB", + "StorageGCWatermark": 90, + "GCPeriod": "1h", "Params": null, - "NoSync": false + "NoSync": false, + "HashOnRead": false, + "BloomFilterSize": 0 }, "Addresses": { "Swarm": [ @@ -25,13 +27,6 @@ "IPNS": "/ipns", "FuseAllowOther": false }, - "Version": { - "Current": "0.4.0-dev", - "Check": "error", - "CheckDate": "0001-01-01T00:00:00Z", - "CheckPeriod": "172800000000000", - "AutoUpdate": "minor" - }, "Discovery": { "MDNS": { "Enabled": true, @@ -52,37 +47,53 @@ "/ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64", "/ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd", "/ip4/178.62.61.185/tcp/4001/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3", - "/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx" + "/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx", + "/ip6/2604:a880:1:20::1f9:9001/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z", + "/ip6/2604:a880:1:20::203:d001/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM", + "/ip6/2604:a880:0:1010::23:d001/tcp/4001/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm", + "/ip6/2400:6180:0:d0::151:6001/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu", + "/ip6/2604:a880:800:10::4a:5001/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64", + "/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd", + "/ip6/2a03:b0c0:1:d0::e7:1/tcp/4001/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3", + "/ip6/2604:a880:1:20::1d9:6001/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx" ], "Tour": { "Last": "" }, "Gateway": { - "HTTPHeaders": null, + "HTTPHeaders": { + "Access-Control-Allow-Headers": [ + "X-Requested-With", + "Range" + ], + "Access-Control-Allow-Methods": [ + "GET" + ], + "Access-Control-Allow-Origin": [ + "*" + ] + }, "RootRedirect": "", - "Writable": false + "Writable": false, + "PathPrefixes": [] }, "SupernodeRouting": { - "Servers": [ - "/ip4/104.236.176.52/tcp/4002/ipfs/QmXdb7tWTxdFEQEFgWBqkuYSrZd3mXrC7HxkD4krGNYx2U", - "/ip4/104.236.179.241/tcp/4002/ipfs/QmVRqViDByUxjUMoPnjurjKvZhaEMFDtK35FJXHAM4Lkj6", - "/ip4/104.236.151.122/tcp/4002/ipfs/QmSZwGx8Tn8tmcM4PtDJaMeUQNRhNFdBLVGPzRiNaRJtFH", - "/ip4/162.243.248.213/tcp/4002/ipfs/QmbHVEEepCi7rn7VL7Exxpd2Ci9NNB6ifvqwhsrbRMgQFP", - "/ip4/128.199.219.111/tcp/4002/ipfs/Qmb3brdCYmKG1ycwqCbo6LUwWxTuo3FisnJV2yir7oN92R", - "/ip4/104.236.76.40/tcp/4002/ipfs/QmdRBCV8Cz2dGhoKLkD3YjPwVFECmqADQkx5ZteF2c6Fy4", - "/ip4/178.62.158.247/tcp/4002/ipfs/QmUdiMPci7YoEUBkyFZAh2pAbjqcPr7LezyiPD2artLw3v", - "/ip4/178.62.61.185/tcp/4002/ipfs/QmVw6fGNqBixZE4bewRLT2VXX7fAHUHs8JyidDiJ1P7RUN" - ] + "Servers": null }, "API": { "HTTPHeaders": null }, "Swarm": { - "AddrFilters": null + "AddrFilters": null, + "DisableBandwidthMetrics": false, + "DisableNatPortMap": false + }, + "Reprovider": { + "Interval": "12h" }, - "Log": { - "MaxSizeMB": 250, - "MaxBackups": 1, - "MaxAgeDays": 0 + "Experimental": { + "FilestoreEnabled": false, + "ShardingEnabled": false, + "Libp2pStreamMounting": false } } \ No newline at end of file diff --git a/test/test-repo/datastore/000002.ldb b/test/test-repo/datastore/000002.ldb deleted file mode 100644 index fc04d660..00000000 Binary files a/test/test-repo/datastore/000002.ldb and /dev/null differ diff --git a/test/test-repo/datastore/000005.ldb b/test/test-repo/datastore/000005.ldb deleted file mode 100644 index 63d9d260..00000000 Binary files a/test/test-repo/datastore/000005.ldb and /dev/null differ diff --git a/test/test-repo/datastore/000053.ldb b/test/test-repo/datastore/000053.ldb new file mode 100644 index 00000000..ee8b8a50 Binary files /dev/null and b/test/test-repo/datastore/000053.ldb differ diff --git a/test/test-repo/datastore/CURRENT b/test/test-repo/datastore/CURRENT index 6ba31a31..f774e854 100644 --- a/test/test-repo/datastore/CURRENT +++ b/test/test-repo/datastore/CURRENT @@ -1 +1 @@ -MANIFEST-000009 +MANIFEST-000052 diff --git a/test/test-repo/datastore/LOG b/test/test-repo/datastore/LOG index fc361eb9..d1562018 100644 --- a/test/test-repo/datastore/LOG +++ b/test/test-repo/datastore/LOG @@ -1,5 +1,233 @@ -=============== Aug 16, 2016 (CEST) =============== -12:27:26.257958 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -12:27:26.258463 db@open opening -12:27:26.260891 db@janitor F·4 G·0 -12:27:26.260933 db@open done T·2.438178ms +=============== Jul 4, 2017 (WEST) =============== +15:31:37.730802 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:31:37.732768 db@open opening +15:31:37.737378 version@stat F·[] S·0B[] Sc·[] +15:31:37.737913 db@janitor F·2 G·0 +15:31:37.737949 db@open done T·5.159368ms +15:31:37.757377 db@close closing +15:31:37.757461 db@close done T·81.924”s +=============== Jul 4, 2017 (WEST) =============== +15:31:37.757924 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:31:37.758028 version@stat F·[] S·0B[] Sc·[] +15:31:37.758036 db@open opening +15:31:37.758071 journal@recovery F·1 +15:31:37.758373 journal@recovery recovering @1 +15:31:37.759037 memdb@flush created L0@2 N·2 S·211B "/lo..oot,v2":"/lo..ins,v1" +15:31:37.762454 version@stat F·[1] S·211B[211B] Sc·[0.25] +15:31:37.763474 db@janitor F·3 G·0 +15:31:37.763495 db@open done T·5.453738ms +15:31:37.772607 db@close closing +15:31:37.772721 db@close done T·109.542”s +=============== Jul 4, 2017 (WEST) =============== +15:40:00.761297 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:40:00.762271 version@stat F·[1] S·211B[211B] Sc·[0.25] +15:40:00.762288 db@open opening +15:40:00.762340 journal@recovery F·1 +15:40:00.764790 journal@recovery recovering @3 +15:40:00.767080 memdb@flush created L0@5 N·4 S·1KiB "/F5..7JP,v5":"/lo..ins,v4" +15:40:00.767521 version@stat F·[2] S·1KiB[1KiB] Sc·[0.50] +15:40:00.768169 db@janitor F·4 G·0 +15:40:00.768186 db@open done T·5.891465ms +15:40:00.785309 db@close closing +15:40:00.785473 db@close done T·160.472”s +=============== Jul 4, 2017 (WEST) =============== +15:40:07.774348 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:40:07.774557 version@stat F·[2] S·1KiB[1KiB] Sc·[0.50] +15:40:07.774568 db@open opening +15:40:07.774611 journal@recovery F·1 +15:40:07.774966 journal@recovery recovering @6 +15:40:07.776842 memdb@flush created L0@8 N·2 S·211B "/lo..oot,v10":"/lo..ins,v9" +15:40:07.777345 version@stat F·[3] S·1KiB[1KiB] Sc·[0.75] +15:40:07.778166 db@janitor F·5 G·0 +15:40:07.778186 db@open done T·3.611268ms +15:40:07.783537 db@close closing +15:40:07.783656 db@close done T·116.559”s +=============== Jul 4, 2017 (WEST) =============== +15:41:22.547017 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:41:22.547314 version@stat F·[3] S·1KiB[1KiB] Sc·[0.75] +15:41:22.547334 db@open opening +15:41:22.547446 journal@recovery F·1 +15:41:22.547991 journal@recovery recovering @9 +15:41:22.548511 memdb@flush created L0@11 N·2 S·211B "/lo..oot,v13":"/lo..ins,v12" +15:41:22.548980 version@stat F·[4] S·1KiB[1KiB] Sc·[1.00] +15:41:22.549702 db@janitor F·6 G·0 +15:41:22.549719 db@open done T·2.377875ms +15:41:22.549788 table@compaction L0·4 -> L1·0 S·1KiB Q·14 +15:41:22.550450 table@build created L1@14 N·4 S·1KiB "/F5..7JP,v5":"/lo..ins,v12" +15:41:22.550488 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] +15:41:22.550730 table@compaction committed F-3 S-633B Ke·0 D·6 T·918.111”s +15:41:22.550806 table@remove removed @11 +15:41:22.550862 table@remove removed @8 +15:41:22.550932 table@remove removed @5 +15:41:22.551030 table@remove removed @2 +15:41:22.551680 db@close closing +15:41:22.551796 db@close done T·112.63”s +=============== Jul 4, 2017 (WEST) =============== +15:41:39.052965 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:41:39.053171 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] +15:41:39.053188 db@open opening +15:41:39.053255 journal@recovery F·1 +15:41:39.053684 journal@recovery recovering @12 +15:41:39.056117 memdb@flush created L0@15 N·2 S·211B "/lo..oot,v16":"/lo..ins,v15" +15:41:39.056892 version@stat F·[1 1] S·1KiB[211B 1KiB] Sc·[0.25 0.00] +15:41:39.058262 db@janitor F·4 G·0 +15:41:39.058279 db@open done T·5.082794ms +15:41:39.061267 db@close closing +15:41:39.061388 db@close done T·118.126”s +=============== Jul 4, 2017 (WEST) =============== +15:41:48.623766 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:41:48.623946 version@stat F·[1 1] S·1KiB[211B 1KiB] Sc·[0.25 0.00] +15:41:48.623957 db@open opening +15:41:48.623999 journal@recovery F·1 +15:41:48.624407 journal@recovery recovering @16 +15:41:48.626176 memdb@flush created L0@18 N·2 S·211B "/lo..oot,v19":"/lo..ins,v18" +15:41:48.627325 version@stat F·[2 1] S·1KiB[422B 1KiB] Sc·[0.50 0.00] +15:41:48.627922 db@janitor F·5 G·0 +15:41:48.627942 db@open done T·3.97763ms +15:41:48.629261 db@close closing +15:41:48.629399 db@close done T·136.301”s +=============== Jul 4, 2017 (WEST) =============== +15:53:08.378238 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:53:08.378408 version@stat F·[2 1] S·1KiB[422B 1KiB] Sc·[0.50 0.00] +15:53:08.378420 db@open opening +15:53:08.378468 journal@recovery F·1 +15:53:08.378990 journal@recovery recovering @19 +15:53:08.380800 memdb@flush created L0@21 N·2 S·211B "/lo..oot,v22":"/lo..ins,v21" +15:53:08.381531 version@stat F·[3 1] S·1KiB[633B 1KiB] Sc·[0.75 0.00] +15:53:08.382277 db@janitor F·6 G·0 +15:53:08.382295 db@open done T·3.868457ms +15:53:08.383570 db@close closing +15:53:08.383702 db@close done T·130.606”s +=============== Jul 4, 2017 (WEST) =============== +15:54:14.936403 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:54:14.936572 version@stat F·[3 1] S·1KiB[633B 1KiB] Sc·[0.75 0.00] +15:54:14.936584 db@open opening +15:54:14.936635 journal@recovery F·1 +15:54:14.936913 journal@recovery recovering @22 +15:54:14.938940 memdb@flush created L0@24 N·1 S·162B "/lo..oot,v24":"/lo..oot,v24" +15:54:14.939787 version@stat F·[4 1] S·1KiB[795B 1KiB] Sc·[1.00 0.00] +15:54:14.941728 db@janitor F·7 G·0 +15:54:14.941804 db@open done T·5.208439ms +15:54:14.941863 table@compaction L0·4 -> L1·1 S·1KiB Q·25 +15:54:14.942716 table@build created L1@27 N·4 S·1KiB "/F5..7JP,v5":"/lo..ins,v21" +15:54:14.942754 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] +15:54:14.943032 table@compaction committed F-4 S-795B Ke·0 D·7 T·1.128534ms +15:54:14.943205 table@remove removed @24 +15:54:14.943295 table@remove removed @21 +15:54:14.943640 table@remove removed @18 +15:54:14.943818 table@remove removed @15 +15:54:14.943942 table@remove removed @14 +15:54:14.944068 db@close closing +15:54:14.944171 db@close done T·100.355”s +=============== Jul 4, 2017 (WEST) =============== +15:54:32.988001 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:54:32.988316 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] +15:54:32.988336 db@open opening +15:54:32.988423 journal@recovery F·1 +15:54:32.988947 journal@recovery recovering @25 +15:54:32.991002 memdb@flush created L0@28 N·1 S·162B "/lo..oot,v26":"/lo..oot,v26" +15:54:32.991603 version@stat F·[1 1] S·1KiB[162B 1KiB] Sc·[0.25 0.00] +15:54:32.992495 db@janitor F·4 G·0 +15:54:32.992515 db@open done T·4.171213ms +15:54:32.993870 db@close closing +15:54:32.993989 db@close done T·114.28”s +=============== Jul 4, 2017 (WEST) =============== +15:54:50.017866 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:54:50.018029 version@stat F·[1 1] S·1KiB[162B 1KiB] Sc·[0.25 0.00] +15:54:50.018041 db@open opening +15:54:50.018085 journal@recovery F·1 +15:54:50.018498 journal@recovery recovering @29 +15:54:50.020254 memdb@flush created L0@31 N·1 S·162B "/lo..oot,v28":"/lo..oot,v28" +15:54:50.020663 version@stat F·[2 1] S·1KiB[324B 1KiB] Sc·[0.50 0.00] +15:54:50.021342 db@janitor F·5 G·0 +15:54:50.021365 db@open done T·3.314444ms +15:54:50.022280 db@close closing +15:54:50.022484 db@close done T·186.342”s +=============== Jul 4, 2017 (WEST) =============== +15:56:06.923937 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:56:06.924230 version@stat F·[2 1] S·1KiB[324B 1KiB] Sc·[0.50 0.00] +15:56:06.924251 db@open opening +15:56:06.924325 journal@recovery F·1 +15:56:06.924883 journal@recovery recovering @32 +15:56:06.926702 memdb@flush created L0@34 N·1 S·162B "/lo..oot,v30":"/lo..oot,v30" +15:56:06.927201 version@stat F·[3 1] S·1KiB[486B 1KiB] Sc·[0.75 0.00] +15:56:06.928181 db@janitor F·6 G·0 +15:56:06.928221 db@open done T·3.959635ms +15:56:06.929783 db@close closing +15:56:06.929949 db@close done T·163.655”s +=============== Jul 4, 2017 (WEST) =============== +15:56:23.797050 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:56:23.797250 version@stat F·[3 1] S·1KiB[486B 1KiB] Sc·[0.75 0.00] +15:56:23.797260 db@open opening +15:56:23.797307 journal@recovery F·1 +15:56:23.797703 journal@recovery recovering @35 +15:56:23.799545 memdb@flush created L0@37 N·1 S·162B "/lo..oot,v32":"/lo..oot,v32" +15:56:23.800045 version@stat F·[4 1] S·1KiB[648B 1KiB] Sc·[1.00 0.00] +15:56:23.800988 db@janitor F·7 G·0 +15:56:23.801011 db@open done T·3.743272ms +15:56:23.801104 table@compaction L0·4 -> L1·1 S·1KiB Q·33 +15:56:23.801542 table@build created L1@40 N·4 S·1KiB "/F5..7JP,v5":"/lo..ins,v21" +15:56:23.801571 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] +15:56:23.801657 table@compaction committed F-4 S-648B Ke·0 D·4 T·523.359”s +15:56:23.801745 table@remove removed @37 +15:56:23.801794 table@remove removed @34 +15:56:23.801894 table@remove removed @31 +15:56:23.801997 table@remove removed @28 +15:56:23.802077 table@remove removed @27 +15:56:23.802676 db@close closing +15:56:23.802806 db@close done T·127.71”s +=============== Jul 4, 2017 (WEST) =============== +15:56:40.131595 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:56:40.131793 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] +15:56:40.131804 db@open opening +15:56:40.131847 journal@recovery F·1 +15:56:40.132170 journal@recovery recovering @38 +15:56:40.134004 memdb@flush created L0@41 N·1 S·162B "/lo..oot,v34":"/lo..oot,v34" +15:56:40.134473 version@stat F·[1 1] S·1KiB[162B 1KiB] Sc·[0.25 0.00] +15:56:40.135186 db@janitor F·4 G·0 +15:56:40.135204 db@open done T·3.393383ms +15:56:40.142721 db@close closing +15:56:40.142910 db@close done T·182.273”s +=============== Jul 4, 2017 (WEST) =============== +15:56:55.053800 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +15:56:55.053959 version@stat F·[1 1] S·1KiB[162B 1KiB] Sc·[0.25 0.00] +15:56:55.053971 db@open opening +15:56:55.054018 journal@recovery F·1 +15:56:55.054340 journal@recovery recovering @42 +15:56:55.056275 memdb@flush created L0@44 N·1 S·162B "/lo..oot,v36":"/lo..oot,v36" +15:56:55.056865 version@stat F·[2 1] S·1KiB[324B 1KiB] Sc·[0.50 0.00] +15:56:55.057913 db@janitor F·5 G·0 +15:56:55.057935 db@open done T·3.957331ms +15:56:55.067574 db@close closing +15:56:55.067860 db@close done T·277.099”s +=============== Jul 4, 2017 (WEST) =============== +16:00:39.662902 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +16:00:39.664111 version@stat F·[2 1] S·1KiB[324B 1KiB] Sc·[0.50 0.00] +16:00:39.664131 db@open opening +16:00:39.664211 journal@recovery F·1 +16:00:39.664643 journal@recovery recovering @45 +16:00:39.665526 memdb@flush created L0@47 N·1 S·162B "/lo..oot,v38":"/lo..oot,v38" +16:00:39.666652 version@stat F·[3 1] S·1KiB[486B 1KiB] Sc·[0.75 0.00] +16:00:39.671269 db@janitor F·6 G·0 +16:00:39.671306 db@open done T·7.162312ms +16:00:39.672402 db@close closing +16:00:39.672694 db@close done T·288.456”s +=============== Jul 4, 2017 (WEST) =============== +16:01:03.403625 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +16:01:03.403841 version@stat F·[3 1] S·1KiB[486B 1KiB] Sc·[0.75 0.00] +16:01:03.403853 db@open opening +16:01:03.403895 journal@recovery F·1 +16:01:03.404257 journal@recovery recovering @48 +16:01:03.406212 memdb@flush created L0@50 N·1 S·162B "/lo..oot,v40":"/lo..oot,v40" +16:01:03.406706 version@stat F·[4 1] S·1KiB[648B 1KiB] Sc·[1.00 0.00] +16:01:03.407485 db@janitor F·7 G·0 +16:01:03.407505 db@open done T·3.645072ms +16:01:03.407599 table@compaction L0·4 -> L1·1 S·1KiB Q·41 +16:01:03.408141 table@build created L1@53 N·4 S·1KiB "/F5..7JP,v5":"/lo..ins,v21" +16:01:03.408173 version@stat F·[0 1] S·1KiB[0B 1KiB] Sc·[0.00 0.00] +16:01:03.408402 table@compaction committed F-4 S-648B Ke·0 D·4 T·777.962”s +16:01:03.408479 table@remove removed @50 +16:01:03.408534 table@remove removed @47 +16:01:03.410564 table@remove removed @44 +16:01:03.411741 table@remove removed @41 +16:01:03.412602 table@remove removed @40 diff --git a/test/test-repo/datastore/LOG.old b/test/test-repo/datastore/LOG.old deleted file mode 100644 index 863b68fd..00000000 --- a/test/test-repo/datastore/LOG.old +++ /dev/null @@ -1,10 +0,0 @@ -=============== Dec 10, 2015 (PST) =============== -07:50:02.056578 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -07:50:02.057231 db@open opening -07:50:02.057312 journal@recovery F·1 -07:50:02.057514 journal@recovery recovering @3 -07:50:02.058921 mem@flush created L0@5 N·4 S·1KiB "/ip..\xf6\xe4\xa9,v5":"/pk..\xf6\xe4\xa9,v6" -07:50:02.059983 db@janitor F·4 G·0 -07:50:02.060001 db@open done T·2.755926ms -07:50:02.073183 db@close closing -07:50:02.073285 db@close done T·97.522”s diff --git a/test/test-repo/datastore/MANIFEST-000009 b/test/test-repo/datastore/MANIFEST-000009 deleted file mode 100644 index a69b18a4..00000000 Binary files a/test/test-repo/datastore/MANIFEST-000009 and /dev/null differ diff --git a/test/test-repo/datastore/MANIFEST-000052 b/test/test-repo/datastore/MANIFEST-000052 new file mode 100644 index 00000000..aa43ddef Binary files /dev/null and b/test/test-repo/datastore/MANIFEST-000052 differ diff --git a/test/test-repo/repo.lock b/test/test-repo/repo.lock new file mode 100644 index 00000000..e69de29b