README + Aqua API doc (#15)

This commit is contained in:
folex 2021-07-21 20:19:13 +03:00 committed by GitHub
parent e3ef81650c
commit 4bd3f33599
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 693 additions and 44 deletions

1
.gitignore vendored
View File

@ -9,6 +9,7 @@
.idea
**/artifacts/*.wasm
*.wasm
**/node_modules
**/dist

5
README.md Normal file
View File

@ -0,0 +1,5 @@
# Fluence IPFS adapter
## Directory structure
- `service` contains Rust service that implements all the IPFS calls by using `ipfs` cli mounted binary
- `local-network` contains Docker Compose YAML config to run a local Fluence network of 3 nodes
- `aqua` Aqua API of IPFS-adapter, go to its [README](/aqua/README.md)

19
aqua/README.md Normal file
View File

@ -0,0 +1,19 @@
## Aqua API of IPFS-adapter
Public API is defined in [ipfs-api.aqua](/aqua/ipfs-api.aqua).
ipfs-adapter service API is defined in [ipfs.aqua](/aqua/ipfs.aqua).
### How to use Aqua API in TypeScript
There's a simple example in [demo.ts](/aqua/typescript/demo.ts)
## Run demo.ts example on TestNet
While in `aqua` directory, `npm start` will run `demo.ts` against Fluence TestNet
### Run demo.ts example locally
1. Go to `local-network`
2. Run `docker compose up -d` to start Fluence cluster of 3 nodes
3. Go back to `../aqua`
4. Run `npm run start:local`
## How to update ipfs.aqua from ipfs_pure.wasm
While in `aqua` directory, run `npm run generate-aqua`

View File

@ -4,16 +4,32 @@ import "ipfs.aqua"
alias Multiaddr: string
alias PeerId: string
-- Upload file `path` to IPFS node running on `node`
-- path should exist & be available to `ipfs-adapter`
func put(node: PeerId, path: string) -> IpfsPutResult:
on node:
result <- Ipfs.put(path)
<- result
-- Download file `hash` from IPFS node `from` and save it to `node`
func get_from(node: PeerId, hash: string, from: Multiaddr) -> IpfsGetResult:
on node:
result <- Ipfs.get_from(hash, from)
<- result
-- Set timeout for IPFS calls in `ipfs-adapter`
func set_timeout(node: PeerId, timeout_sec: u64):
on node:
Ipfs.set_timeout(timeout_sec)
-- Get multiaddress of IPFS's HTTP RPC endpoint (usually on port 5001)
func get_external_api_multiaddr(node: PeerId) -> IpfsMultiaddrResult:
on node:
result <- Ipfs.get_external_api_multiaddr()
<- result
-- Get multiaddress of IPFS's Swarm endpoint (usually on port 4001)
func get_external_swarm_multiaddr(node: PeerId) -> IpfsMultiaddrResult:
on node:
result <- Ipfs.get_external_swarm_multiaddr()
<- result

678
aqua/package-lock.json generated
View File

@ -51,6 +51,124 @@
"multiaddr": "8.1.2",
"peer-id": "0.14.3",
"uuid": "8.3.0"
},
"dependencies": {
"multiaddr": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz",
"integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==",
"requires": {
"cids": "^1.0.0",
"class-is": "^1.1.0",
"dns-over-http-resolver": "^1.0.0",
"err-code": "^2.0.3",
"is-ip": "^3.1.0",
"multibase": "^3.0.0",
"uint8arrays": "^1.1.0",
"varint": "^5.0.0"
},
"dependencies": {
"cids": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/cids/-/cids-1.1.7.tgz",
"integrity": "sha512-dlh+K0hMwFAFFjWQ2ZzxOhgGVNVREPdmk8cqHFui2U4sOodcemLMxdE5Ujga4cDcDQhWfldEPThkfu6KWBt1eA==",
"requires": {
"multibase": "^4.0.1",
"multicodec": "^3.0.1",
"multihashes": "^4.0.1",
"uint8arrays": "^2.1.3"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
}
}
}
}
},
"multibase": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
"integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
"requires": {
"@multiformats/base-x": "^4.0.1",
"web-encoding": "^1.0.6"
}
},
"multicodec": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.1.0.tgz",
"integrity": "sha512-f6d4DhbQ9a8WiJ/wpbKgeJSeR0/juP/1wnjbKdZ0KAWDkC/z7Lb3xOegMUG+uTcfwSYf6j1eTvFf8HDgqPRGmQ==",
"requires": {
"uint8arrays": "^2.1.5",
"varint": "^6.0.0"
},
"dependencies": {
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
},
"varint": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
}
}
},
"multihashes": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
"integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
"requires": {
"multibase": "^4.0.1",
"uint8arrays": "^2.1.3",
"varint": "^5.0.2"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
}
}
},
"uint8arrays": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz",
"integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==",
"requires": {
"multibase": "^3.0.0",
"web-encoding": "^1.0.2"
}
}
}
},
"@fluencelabs/fluence-network-environment": {
@ -2487,6 +2605,46 @@
}
}
},
"multiaddr": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz",
"integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==",
"requires": {
"cids": "^1.0.0",
"class-is": "^1.1.0",
"dns-over-http-resolver": "^1.0.0",
"err-code": "^2.0.3",
"is-ip": "^3.1.0",
"multibase": "^3.0.0",
"uint8arrays": "^1.1.0",
"varint": "^5.0.0"
},
"dependencies": {
"multibase": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
"integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
"requires": {
"@multiformats/base-x": "^4.0.1",
"web-encoding": "^1.0.6"
}
},
"uint8arrays": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz",
"integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==",
"requires": {
"multibase": "^3.0.0",
"web-encoding": "^1.0.2"
}
},
"varint": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
"integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
}
}
},
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
@ -2655,6 +2813,37 @@
"uint8arrays": "^2.0.5"
},
"dependencies": {
"cids": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/cids/-/cids-1.1.7.tgz",
"integrity": "sha512-dlh+K0hMwFAFFjWQ2ZzxOhgGVNVREPdmk8cqHFui2U4sOodcemLMxdE5Ujga4cDcDQhWfldEPThkfu6KWBt1eA==",
"requires": {
"multibase": "^4.0.1",
"multicodec": "^3.0.1",
"multihashes": "^4.0.1",
"uint8arrays": "^2.1.3"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"multihashes": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
"integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
"requires": {
"multibase": "^4.0.1",
"uint8arrays": "^2.1.3",
"varint": "^5.0.2"
}
}
}
},
"it-length-prefixed": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.1.0.tgz",
@ -2666,6 +2855,32 @@
"varint": "^5.0.0"
}
},
"multiaddr": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz",
"integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==",
"requires": {
"cids": "^1.0.0",
"class-is": "^1.1.0",
"dns-over-http-resolver": "^1.0.0",
"err-code": "^2.0.3",
"is-ip": "^3.1.0",
"multibase": "^3.0.0",
"uint8arrays": "^1.1.0",
"varint": "^5.0.0"
},
"dependencies": {
"uint8arrays": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz",
"integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==",
"requires": {
"multibase": "^3.0.0",
"web-encoding": "^1.0.2"
}
}
}
},
"multibase": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
@ -2675,6 +2890,22 @@
"web-encoding": "^1.0.6"
}
},
"multicodec": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.1.0.tgz",
"integrity": "sha512-f6d4DhbQ9a8WiJ/wpbKgeJSeR0/juP/1wnjbKdZ0KAWDkC/z7Lb3xOegMUG+uTcfwSYf6j1eTvFf8HDgqPRGmQ==",
"requires": {
"uint8arrays": "^2.1.5",
"varint": "^6.0.0"
},
"dependencies": {
"varint": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
}
}
},
"multihashes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz",
@ -2856,6 +3087,35 @@
"private-ip": "^2.1.1"
},
"dependencies": {
"cids": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/cids/-/cids-1.1.7.tgz",
"integrity": "sha512-dlh+K0hMwFAFFjWQ2ZzxOhgGVNVREPdmk8cqHFui2U4sOodcemLMxdE5Ujga4cDcDQhWfldEPThkfu6KWBt1eA==",
"requires": {
"multibase": "^4.0.1",
"multicodec": "^3.0.1",
"multihashes": "^4.0.1",
"uint8arrays": "^2.1.3"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
}
}
},
"ip-address": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-6.4.0.tgz",
@ -2874,6 +3134,91 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
"integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA="
},
"multiaddr": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz",
"integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==",
"requires": {
"cids": "^1.0.0",
"class-is": "^1.1.0",
"dns-over-http-resolver": "^1.0.0",
"err-code": "^2.0.3",
"is-ip": "^3.1.0",
"multibase": "^3.0.0",
"uint8arrays": "^1.1.0",
"varint": "^5.0.0"
}
},
"multibase": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
"integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
"requires": {
"@multiformats/base-x": "^4.0.1",
"web-encoding": "^1.0.6"
}
},
"multicodec": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.1.0.tgz",
"integrity": "sha512-f6d4DhbQ9a8WiJ/wpbKgeJSeR0/juP/1wnjbKdZ0KAWDkC/z7Lb3xOegMUG+uTcfwSYf6j1eTvFf8HDgqPRGmQ==",
"requires": {
"uint8arrays": "^2.1.5",
"varint": "^6.0.0"
},
"dependencies": {
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
},
"varint": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
}
}
},
"multihashes": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
"integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
"requires": {
"multibase": "^4.0.1",
"uint8arrays": "^2.1.3",
"varint": "^5.0.2"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
}
}
},
"uint8arrays": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz",
"integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==",
"requires": {
"multibase": "^3.0.0",
"web-encoding": "^1.0.2"
}
}
}
},
@ -2896,15 +3241,136 @@
"p-timeout": "^4.1.0"
},
"dependencies": {
"cids": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/cids/-/cids-1.1.7.tgz",
"integrity": "sha512-dlh+K0hMwFAFFjWQ2ZzxOhgGVNVREPdmk8cqHFui2U4sOodcemLMxdE5Ujga4cDcDQhWfldEPThkfu6KWBt1eA==",
"requires": {
"multibase": "^4.0.1",
"multicodec": "^3.0.1",
"multihashes": "^4.0.1",
"uint8arrays": "^2.1.3"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
}
}
},
"err-code": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
"integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
},
"multiaddr": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz",
"integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==",
"requires": {
"cids": "^1.0.0",
"class-is": "^1.1.0",
"dns-over-http-resolver": "^1.0.0",
"err-code": "^2.0.3",
"is-ip": "^3.1.0",
"multibase": "^3.0.0",
"uint8arrays": "^1.1.0",
"varint": "^5.0.0"
},
"dependencies": {
"err-code": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
"integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA=="
}
}
},
"multibase": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
"integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
"requires": {
"@multiformats/base-x": "^4.0.1",
"web-encoding": "^1.0.6"
}
},
"multicodec": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.1.0.tgz",
"integrity": "sha512-f6d4DhbQ9a8WiJ/wpbKgeJSeR0/juP/1wnjbKdZ0KAWDkC/z7Lb3xOegMUG+uTcfwSYf6j1eTvFf8HDgqPRGmQ==",
"requires": {
"uint8arrays": "^2.1.5",
"varint": "^6.0.0"
},
"dependencies": {
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
},
"varint": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
}
}
},
"multihashes": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
"integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
"requires": {
"multibase": "^4.0.1",
"uint8arrays": "^2.1.3",
"varint": "^5.0.2"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
}
}
},
"p-timeout": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz",
"integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw=="
},
"uint8arrays": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz",
"integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==",
"requires": {
"multibase": "^3.0.0",
"web-encoding": "^1.0.2"
}
}
}
},
@ -2959,6 +3425,122 @@
"integrity": "sha512-wwZ5+PU0vQw10kwQRyZin1Z0dqVOp0BnYlX1xvXHS2fmLwrrQCfU1+3tlW5MRcihUwGz1virnVhbRAU1biKfiw==",
"requires": {
"multiaddr": "^8.0.0"
},
"dependencies": {
"cids": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/cids/-/cids-1.1.7.tgz",
"integrity": "sha512-dlh+K0hMwFAFFjWQ2ZzxOhgGVNVREPdmk8cqHFui2U4sOodcemLMxdE5Ujga4cDcDQhWfldEPThkfu6KWBt1eA==",
"requires": {
"multibase": "^4.0.1",
"multicodec": "^3.0.1",
"multihashes": "^4.0.1",
"uint8arrays": "^2.1.3"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
}
}
},
"multiaddr": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz",
"integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==",
"requires": {
"cids": "^1.0.0",
"class-is": "^1.1.0",
"dns-over-http-resolver": "^1.0.0",
"err-code": "^2.0.3",
"is-ip": "^3.1.0",
"multibase": "^3.0.0",
"uint8arrays": "^1.1.0",
"varint": "^5.0.0"
}
},
"multibase": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
"integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
"requires": {
"@multiformats/base-x": "^4.0.1",
"web-encoding": "^1.0.6"
}
},
"multicodec": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.1.0.tgz",
"integrity": "sha512-f6d4DhbQ9a8WiJ/wpbKgeJSeR0/juP/1wnjbKdZ0KAWDkC/z7Lb3xOegMUG+uTcfwSYf6j1eTvFf8HDgqPRGmQ==",
"requires": {
"uint8arrays": "^2.1.5",
"varint": "^6.0.0"
},
"dependencies": {
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
},
"varint": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
}
}
},
"multihashes": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
"integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
"requires": {
"multibase": "^4.0.1",
"uint8arrays": "^2.1.3",
"varint": "^5.0.2"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"uint8arrays": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multiformats": "^9.4.2"
}
}
}
},
"uint8arrays": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz",
"integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==",
"requires": {
"multibase": "^3.0.0",
"web-encoding": "^1.0.2"
}
}
}
},
"merge-options": {
@ -3026,18 +3608,36 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"multiaddr": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz",
"integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==",
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.0.tgz",
"integrity": "sha512-yP3LzFkM0GORZHNenS8Ok2spsaICRBhxLEohAfKKwwrgHIEWrDUhMRIkh/MONDBThNqaiGl7Ch1H7qblRDNHyg==",
"requires": {
"cids": "^1.0.0",
"class-is": "^1.1.0",
"dns-over-http-resolver": "^1.0.0",
"err-code": "^2.0.3",
"err-code": "^3.0.1",
"is-ip": "^3.1.0",
"multibase": "^3.0.0",
"uint8arrays": "^1.1.0",
"varint": "^5.0.0"
"multiformats": "^9.0.2",
"uint8arrays": "^2.1.3",
"varint": "^6.0.0"
},
"dependencies": {
"err-code": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
"integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
},
"varint": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
}
}
},
"multiaddr-to-uri": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz",
"integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==",
"requires": {
"multiaddr": "^8.0.0"
},
"dependencies": {
"cids": {
@ -3060,15 +3660,30 @@
}
},
"uint8arrays": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
"integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multibase": "^4.0.1"
"multiformats": "^9.4.2"
}
}
}
},
"multiaddr": {
"version": "8.1.2",
"resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz",
"integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==",
"requires": {
"cids": "^1.0.0",
"class-is": "^1.1.0",
"dns-over-http-resolver": "^1.0.0",
"err-code": "^2.0.3",
"is-ip": "^3.1.0",
"multibase": "^3.0.0",
"uint8arrays": "^1.1.0",
"varint": "^5.0.0"
}
},
"multibase": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
@ -3087,20 +3702,12 @@
"varint": "^6.0.0"
},
"dependencies": {
"multibase": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
"integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
"requires": {
"@multiformats/base-x": "^4.0.1"
}
},
"uint8arrays": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
"integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multibase": "^4.0.1"
"multiformats": "^9.4.2"
}
},
"varint": {
@ -3129,11 +3736,11 @@
}
},
"uint8arrays": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
"integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.7.tgz",
"integrity": "sha512-k+yuEWEHQG/TuRaxL+JVEe8IBqyU5dhDkw+CISCDccOcW90dIju0A6i0Iwav0MK7kg73FZpowqOByS5e/B6GYA==",
"requires": {
"multibase": "^4.0.1"
"multiformats": "^9.4.2"
}
}
}
@ -3149,14 +3756,6 @@
}
}
},
"multiaddr-to-uri": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz",
"integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==",
"requires": {
"multiaddr": "^8.0.0"
}
},
"multibase": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
@ -3175,6 +3774,11 @@
"varint": "^5.0.0"
}
},
"multiformats": {
"version": "9.4.2",
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.2.tgz",
"integrity": "sha512-GXsulAzqA+EI/iObKWsg9n4PKNVpUTsWdA+Ijn3hJMaVHQ/+dJaClSZ55g8sVKniBjQkouGaVCKCu9c/wwMXQQ=="
},
"multihashes": {
"version": "0.4.21",
"resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz",

View File

@ -1,6 +1,6 @@
{
"name": "@fluencelabs/aqua-ipfs",
"version": "0.1.7",
"version": "0.1.11",
"description": "Aqua IPFS library",
"main": "./typescript/dist/index.js",
"typings": "./typescript/dist/index.d.ts",
@ -18,6 +18,7 @@
"@fluencelabs/fluence-network-environment": "^1.0.10"
},
"scripts": {
"generate-aqua": "../service/build.sh",
"compile-aqua": "aqua-cli -i . -o ./typescript",
"prebuild": "npm run compile-aqua",
"build": "tsc",

View File

@ -11,7 +11,8 @@ services:
ports:
- 7770:7770 # tcp
- 9990:9990 # ws
- 5000:5001 # ipfs
- 5000:5001 # ipfs rpc
- 4000:4001 # ipfs swarm
- 18080:18080 # /metrics
restart: always
volumes:
@ -31,7 +32,8 @@ services:
ports:
- 7771:7771 # tcp
- 9991:9991 # ws
- 5001:5001 # ipfs
- 5001:5001 # ipfs rpc
- 4001:4001 # ipfs swarm
- 18081:18080 # /metrics
restart: always
volumes:
@ -51,7 +53,8 @@ services:
ports:
- 7772:7772 # tcp
- 9992:9992 # ws
- 5002:5001 # ipfs
- 5002:5001 # ipfs rpc
- 4002:4001 # ipfs swarm
- 18082:18080 # /metrics
restart: always
volumes:

4
service/Cargo.lock generated
View File

@ -1477,9 +1477,9 @@ dependencies = [
[[package]]
name = "tinyvec"
version = "1.2.0"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342"
checksum = "4ac2e1d4bd0f75279cfd5a076e0d578bbf02c22b7c39e766c437dd49b3ec43e0"
dependencies = [
"tinyvec_macros",
]

View File

@ -18,4 +18,4 @@ mkdir -p artifacts
rm -f artifacts/*.wasm
cp target/wasm32-wasi/release/ipfs_effector.wasm artifacts/
cp target/wasm32-wasi/release/ipfs_pure.wasm artifacts/
marine aqua artifacts/ipfs_pure.wasm -s Ipfs -i ipfs-adapter > ../aqua/ipfs.aqua
marine aqua artifacts/ipfs_pure.wasm -s Ipfs -i ipfs-adapter >../aqua/ipfs.aqua