Distributed Solid (based on IPFS, SAFE Network, etc.)

From the previous discussion on GitHub, it seems that Solid in its current form does not provide data redundancy/duplication, thus a Solid pod can be a single point of failure. However, it could be based on top of some distributed network, such as IPFS, Freenet, Zeronet or SAFE Network, which would make it more resilient to censors and attackers.
What is your opinion about making Solid not only decentralized, but also distributed?
In fact, there is already some effort to put Solid on top of SAFE Network. Is there any official incentive to base it on top of e.g. IPFS?

17 Likes

This is definitely part where Solid needs improvement and with truly distributed network will be much more safe and famous.

Would like known if also other projects contacted already Solid or only Maidsafe team did some steps.

4 Likes

One more voice for SOLID and SAFE :slight_smile:

5 Likes

I do like IPFS and they are fantastic at marketing their product but Maidsafe has really stepped up their game in that arena recently. I only mention this as it’s important for exposure and adoption of SoLiD (and SAFE). On the other hand SAFE has the security, privacy, and ease of storage that IPFS simply does not. As well as actively in alignment with SoLiD goals and ideals (not sure about IPFS there). I personally think that’s where there should be some focus and I’m not just saying that because I’m building an app on SAFE. I’m building an app on SAFE because of the same benefits I point out for SoLiD and SoLiD’s goal is the missing peice for a new internet. A fresh start where ALL of the data can be linked from square one. That’s huge imo.

3 Likes

If you are interested in this conversation, perhaps you would be interested in joining the External Interop and Outreach Panel.

1 Like

I’m interested to know if someone has already tried to make a distributed pod with IPFS

3 Likes

Hi everyone! I’m going to present Solid over IPFS at the IFIP Networking Conference next Monday. The third Session (1700-1820): Decentralised Identity and Web 3.0 Services might be interesting for people from the Solid Community to participate. I will be there :blush:.

5 Likes

@fuubi Interesting!!! Are there any presentation material and github demo we can look at and play with?

@raphael10-collab Sure! You can check the source from this branch.
Here are some notes on how to start the server:

git checkout feat/ipfs-accessor
npm i 
# Edit the default ipfs data folder file path (default: /tmp/solid-ipfs1 ) 
vim config/presets/storage/backend/storage-ipfs.json
# Start the server
node ./bin/server.js -c config/config-ipfs.json -f /

For further reading, you can also have a look at the paper. I am currently in the process of publishing it as a separate npm package and add the configuration to CSS recipes.

4 Likes

I’m getting this errors:

(base) raphy@pc:~$ git clone --single-branch --branch feat/ipfs-accessor https://github.com/FUUbi
/community-server.git
Cloning into 'community-server'...
remote: Enumerating objects: 6959, done.
remote: Counting objects: 100% (143/143), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 6959 (delta 80), reused 139 (delta 80), pack-reused 6816
Receiving objects: 100% (6959/6959), 2.26 MiB | 22.64 MiB/s, done.
Resolving deltas: 100% (5278/5278), done.

(base) raphy@pc:~$ cd community-server/

(base) raphy@pc:~/community-server$ git checkout feat/ipfs-accessor
Already on 'feat/ipfs-accessor'
Your branch is up to date with 'origin/feat/ipfs-accessor'.

(base) raphy@pc:~/community-server$ yarn
yarn install v1.22.10
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/5] Validating package.json...
[2/5] Resolving packages...
warning @rdfjs/data-model > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier@0.5.2: package is no longer supported, use @solid/access-token-verifier instead
warning @solid/identity-token-verifier > rdf-store-stream > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-data-factory > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-html-script > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/actor-rdf-parse-html-script > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-html > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/actor-rdf-parse-html > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-jsonld > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/actor-rdf-parse-jsonld > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/bus-rdf-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/bus-rdf-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/bus-rdf-dereference > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/bus-rdf-parse-html > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/bus-rdf-parse-html > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-html-microdata > microdata-rdf-streaming-parser > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-html-rdfa > rdfa-streaming-parser > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-jsonld > jsonld-streaming-parser > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-rdfxml > rdfxml-streaming-parser > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/core > @comunica/types > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @types/escape-string-regexp@2.0.1: This is a stub types definition. escape-string-regexp provides its own type definitions, so you do not need this installed.
warning @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning componentsjs > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning componentsjs > rdf-quad > rdf-literal > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning fetch-sparql-endpoint > sparqlxml-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning fetch-sparql-endpoint > sparqljson-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning ipfs > ipfs-core > libp2p-webrtc-star > socket.io > debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
warning ipfs > ipfs-core > libp2p > @motrix/nat-api > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning ipfs > ipfs-core > libp2p-webrtc-star > socket.io > engine.io > debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
warning ipfs > ipfs-core > libp2p-webrtc-star > socket.io > socket.io-parser > debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
warning ipfs > ipfs-cli > ipfs-daemon > prometheus-gc-stats > gc-stats > node-pre-gyp@0.13.0: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
warning ipfs > ipfs-core > libp2p > @motrix/nat-api > request > har-validator@5.1.5: this library is no longer supported
warning ipfs > ipfs-core > libp2p > @motrix/nat-api > request > uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
warning node-pre-gyp@0.17.0: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
warning rdf-serialize > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning rdf-serialize > @comunica/bus-rdf-serialize > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning rdf-serialize > @comunica/actor-rdf-serialize-n3 > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning rdf-serialize > @comunica/actor-rdf-serialize-jsonld > jsonld-streaming-serializer > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning jest > @jest/core > jest-haste-map > sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
warning jest > @jest/core > jest-haste-map > sane > micromatch > snapdragon > source-map-resolve > resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
warning jest > @jest/core > jest-haste-map > sane > micromatch > snapdragon > source-map-resolve > urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
[3/5] Fetching packages...
info fsevents@2.3.2: The platform "linux" is incompatible with this module.
info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
warning "ipfs > ipfs-cli > ipfs-daemon@0.5.5" has unmet peer dependency "electron-webrtc@^0.3.0".
warning "ipfs > ipfs-cli > ipfs-daemon@0.5.5" has unmet peer dependency "wrtc@^0.4.6".
warning "rdf-serialize > @comunica/actor-rdf-serialize-jsonld@1.19.2" has unmet peer dependency "@comunica/actor-abstract-mediatyped@^1.0.0".
warning " > typedoc@0.20.37" has incorrect peer dependency "typescript@3.9.x || 4.0.x || 4.1.x || 4.2.x".
[5/5] Building fresh packages...
success Saved lockfile.
$ npm run build

> @solid/community-server@0.7.0 build
> npm run build:ts && npm run build:components


> @solid/community-server@0.7.0 build:ts
> tsc

src/pods/generate/TemplatedResourcesGenerator.ts:139:33 - error TS2322: Type 'string | undefined' is not assignable to type 'MimeFormat | undefined'.
  Type 'string' is not assignable to type 'MimeFormat | undefined'.

139     const parser = new Parser({ format: metaLink.contentType, baseIRI: identifier.path });
                                    ~~~~~~

src/storage/DataAccessorBasedStore.ts:271:57 - error TS2322: Type 'string | undefined' is not assignable to type 'MimeFormat | undefined'.

271         quads = await parseQuads(representation.data, { format: contentType, baseIRI: identifier.value });
                                                            ~~~~~~

src/storage/accessors/FileDataAccessor.ts:271:53 - error TS2322: Type 'string | undefined' is not assignable to type 'MimeFormat | undefined'.

271       return await parseQuads(readMetadataStream, { format: metadataLink.contentType, baseIRI: identifier.path });
                                                        ~~~~~~

src/storage/accessors/IpfsAccessor.ts:272:53 - error TS2322: Type 'string | undefined' is not assignable to type 'MimeFormat | undefined'.

272       return await parseQuads(readMetadataStream, { format: metadataLink.contentType, baseIRI: identifier.path });
                                                        ~~~~~~

src/storage/patch/SparqlUpdatePatchHandler.ts:128:77 - error TS2352: Conversion of type 'Stream<BaseQuad> & DatasetCore<Quad, Quad>' to type 'Readable' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.

128     await this.source.setRepresentation(identifier, new BasicRepresentation(store.match() as Readable, INTERNAL_QUADS));
                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~

src/storage/patch/SparqlUpdatePatchHandler.ts:128:77 - error TS2352: Conversion of type 'Stream<BaseQuad> & DatasetCore<Quad, Quad>' to type 'Readable' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
  Type 'Stream<BaseQuad> & DatasetCore<Quad, Quad>' is missing the following properties from type 'Readable': readable, readableEncoding, readableEnded, readableFlowing, and 17 more.

128     await this.source.setRepresentation(identifier, new BasicRepresentation(store.match() as Readable, INTERNAL_QUADS));
                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~


Found 6 errors.

error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
(base) raphy@pc:~/community-server$

This could be interesting here as well as with the other SOLID projects regarding offline and local: Nebulus\

1 Like

I just tested it, and it still works with Ubuntu, Node.js v15.9.0, and npm 7.5.3. Are you able to build the main branch?

main branch with npm :

(base) raphy@pc:~$ git clone https://github.com/FUUbi/community-server.git
Cloning into 'community-server'...
remote: Enumerating objects: 27375, done.
remote: Counting objects: 100% (5946/5946), done.
remote: Compressing objects: 100% (509/509), done.
remote: Total 27375 (delta 5638), reused 5437 (delta 5437), pack-reused 21429
Receiving objects: 100% (27375/27375), 10.84 MiB | 14.32 MiB/s, done.
Resolving deltas: 100% (24516/24516), done.

(base) raphy@pc:~$ cd community-server/


(base) raphy@pc:~/community-server$ npm i

> bcrypt@5.0.1 install /home/raphy/community-server/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build

[bcrypt] Success: "/home/raphy/community-server/node_modules/bcrypt/lib/binding/napi-   
v3/bcrypt_lib.node" is installed via remote

> husky@4.3.0 install /home/raphy/community-server/node_modules/husky
> node husky install

husky > Setting up git hooks
husky > Done

> husky@4.3.0 postinstall /home/raphy/community-server/node_modules/husky
> opencollective-postinstall || exit 0

Thank you for using husky!
If you rely on this package, please consider supporting our open collective:
> https://opencollective.com/husky/donate

> nodemon@2.0.6 postinstall /home/raphy/community-server/node_modules/nodemon
> node bin/postinstall || exit 0

Love nodemon? You can now support the project via the open collective:
 > https://opencollective.com/nodemon/donate

> @solid/community-server@0.9.0 prepare /home/raphy/community-server
> npm run build

> @solid/community-server@0.9.0 build /home/raphy/community-server
> npm run build:ts && npm run build:components

> @solid/community-server@0.9.0 build:ts /home/raphy/community-server
> tsc

> @solid/community-server@0.9.0 build:components /home/raphy/community-server
> componentsjs-generator -s src -c dist/components -i .componentsignore --typeScopedContexts

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/jest-
haste-map/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for    
fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3   
(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for     
fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 1478 packages from 844 contributors and audited 1494 packages in 23.324s

122 packages are looking for funding
  run `npm fund` for details

found 374 vulnerabilities (2 low, 20 moderate, 351 high, 1 critical)
  run `npm audit fix` to fix them, or `npm audit` for details



(base) raphy@pc:~/community-server$ npm start

> @solid/community-server@0.9.0 start /home/raphy/community-server
> node ./bin/server.js

2021-07-29T07:13:26.974Z [Components.js] info: Initiating component discovery from /home/raphy
/community-server/
2021-07-29T07:13:27.332Z [Components.js] info: Discovered 29 component packages within 1479 
packages
2021-07-29T07:13:27.333Z [Components.js] info: Initiating component loading
2021-07-29T07:13:28.064Z [Components.js] info: Registered 229 components
2021-07-29T07:13:28.065Z [Components.js] info: Loaded configs
2021-07-29T07:13:28.460Z [BaseHttpServerFactory] info: Starting server at http://localhost:3000/
2021-07-29T07:13:38.594Z [BaseHttpServerFactory] info: Received GET request for /
2021-07-29T07:13:38.601Z [WebAclAuthorizer] info: Reading ACL statements from 
http://localhost:3000/.acl
2021-07-29T07:13:50.314Z [BaseHttpServerFactory] info: Received GET request for /
2021-07-29T07:13:50.317Z [WebAclAuthorizer] info: Reading ACL statements from 
http://localhost:3000/.acl
2021-07-29T07:21:00.581Z [BaseHttpServerFactory] info: Received GET request for /.acl
2021-07-29T07:21:00.585Z [WebAclAuthorizer] info: Reading ACL statements from   
http://localhost:3000/.acl
2021-07-29T07:21:00.613Z [BaseHttpServerFactory] info: Received GET request for /favicon.ico

main branch with yarn :

(base) raphy@pc:~$ git clone https://github.com/FUUbi/community-server.git
Cloning into 'community-server'...
remote: Enumerating objects: 27375, done.
remote: Counting objects: 100% (5697/5697), done.
remote: Compressing objects: 100% (511/511), done.
remote: Total 27375 (delta 5391), reused 5186 (delta 5186), pack-reused 21678
Receiving objects: 100% (27375/27375), 10.86 MiB | 12.91 MiB/s, done.
Resolving deltas: 100% (24486/24486), done.
(base) raphy@pc:~$ cd community-server/
(base) raphy@pc:~/community-server$ yarn
yarn install v1.22.10
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/5] Validating package.json...
[2/5] Resolving packages...
warning @rdfjs/data-model > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @rdfjs/fetch > @rdfjs/formats-common > rdfxml-streaming-parser > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @rdfjs/fetch > @rdfjs/formats-common > rdfxml-streaming-parser > rdf-data-factory > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @rdfjs/fetch > @rdfjs/formats-common > @rdfjs/parser-jsonld > jsonld > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning @rdfjs/fetch > @rdfjs/formats-common > @rdfjs/parser-jsonld > jsonld > xmldom@0.1.19: Deprecated due to CVE-2021-21366 resolved in 0.5.0
warning @rdfjs/fetch > @rdfjs/formats-common > @rdfjs/parser-jsonld > jsonld > request > har-validator@5.1.5: this library is no longer supported
warning @rdfjs/fetch > @rdfjs/formats-common > @rdfjs/parser-jsonld > jsonld > request > uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
warning @solid/identity-token-verifier@0.8.0: package is no longer supported, use @solid/access-token-verifier instead
warning @solid/identity-token-verifier > rdf-store-stream > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/actor-rdf-parse-html-script > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-html-script > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/actor-rdf-parse-jsonld > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-jsonld > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/actor-rdf-parse-html > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/actor-rdf-parse-html > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/bus-rdf-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/bus-rdf-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/bus-rdf-parse-html > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/bus-rdf-parse-html > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/actor-rdf-parse-html-microdata > microdata-rdf-streaming-parser > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-dereference > @comunica/bus-rdf-dereference > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/actor-rdf-parse-html-rdfa > rdfa-streaming-parser > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/actor-rdf-parse-jsonld > jsonld-streaming-parser > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @solid/identity-token-verifier > rdf-parse > @comunica/core > @comunica/types > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning componentsjs > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning componentsjs > rdf-quad > rdf-literal > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning fetch-sparql-endpoint > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning fetch-sparql-endpoint > sparqlxml-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning fetch-sparql-endpoint > sparqljson-parse > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning rdf-serialize > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning rdf-serialize > @comunica/bus-rdf-serialize > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning rdf-serialize > @comunica/actor-rdf-serialize-n3 > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning rdf-serialize > @comunica/actor-rdf-serialize-jsonld > jsonld-streaming-serializer > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning sparqlalgebrajs > @types/rdf-js@4.0.2: This is a stub types definition. rdf-js provides its own type definitions, so you do not need this installed.
warning @inrupt/solid-client-authn-node > @inrupt/solid-client-authn-core > @inrupt/solid-common-vocab@0.5.3: This package was deprecated *mistakenly* - it will be reinstated as soon as possible!
[3/5] Fetching packages...
info fsevents@2.3.2: The platform "linux" is incompatible with this module.
info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
warning "rdf-serialize > @comunica/actor-rdf-serialize-jsonld@1.19.2" has unmet peer dependency "@comunica/actor-abstract-mediatyped@^1.0.0".
warning " > typedoc@0.20.37" has incorrect peer dependency "typescript@3.9.x || 4.0.x || 4.1.x || 4.2.x".
[5/5] Building fresh packages...
success Saved lockfile.
$ npm run build
npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1627543961166-0.8261586298723735/node but npm is using /home/raphy/emsdk/node/14.15.5_64bit/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

> @solid/community-server@0.9.0 build /home/raphy/community-server
> npm run build:ts && npm run build:components

npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1627543961166-0.8261586298723735/node but npm is using /home/raphy/emsdk/node/14.15.5_64bit/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

> @solid/community-server@0.9.0 build:ts /home/raphy/community-server
> tsc

src/pods/generate/TemplatedResourcesGenerator.ts:142:33 - error TS2322: Type 'string | undefined' is not assignable to type 'MimeFormat | undefined'.
  Type 'string' is not assignable to type 'MimeFormat | undefined'.

142     const parser = new Parser({ format: metaLink.contentType, baseIRI: identifier.path });
                                    ~~~~~~

src/storage/DataAccessorBasedStore.ts:344:57 - error TS2322: Type 'string | undefined' is not assignable to type 'MimeFormat | undefined'.

344         quads = await parseQuads(representation.data, { format: contentType, baseIRI: identifier.value });
                                                            ~~~~~~

src/storage/accessors/FileDataAccessor.ts:272:53 - error TS2322: Type 'string | undefined' is not assignable to type 'MimeFormat | undefined'.

272       return await parseQuads(readMetadataStream, { format: metadataLink.contentType, baseIRI: identifier.path });
                                                        ~~~~~~

src/storage/patch/SparqlUpdatePatchHandler.ts:167:45 - error TS2352: Conversion of type 'Stream<BaseQuad> & DatasetCore<Quad, Quad>' to type 'Readable' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
  Type 'Stream<BaseQuad> & DatasetCore<Quad, Quad>' is missing the following properties from type 'Readable': readable, readableEncoding, readableEnded, readableFlowing, and 17 more.

167     const patched = new BasicRepresentation(result.match() as Readable, metadata);
                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~


Found 4 errors.

npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! @solid/community-server@0.9.0 build:ts: `tsc`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the @solid/community-server@0.9.0 build:ts script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/raphy/.npm/_logs/2021-07-29T07_32_46_154Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! @solid/community-server@0.9.0 build: `npm run build:ts && npm run build:components`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the @solid/community-server@0.9.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/raphy/.npm/_logs/2021-07-29T07_32_46_187Z-debug.log
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
(base) raphy@pc:~/community-server$

This is fascinating stuff. Do you have a link to the video which is still active?

Yeah, it is exciting. Here is a video with a demo.

1 Like