Code Monkey home page Code Monkey logo

dappnet's People

Contributors

liamzebedee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dappnet's Issues

Error resolving IPNS path: {"Message":"could not resolve name"}

Error: Error resolving IPNS path: {"Message":"could not resolve name","Code":0,"Type":"error"}
ENS data:
{
  "codec": "ipns-ns",
  "contentHashHex": "0xe501017200240801122084f6b943c1bf28304a1f1d0b7d022efc128eb39e3f5f01069380b74d4642ac60",
  "hash": "12D3KooWJmQBthDhuuHG8TTZUssFba8rTPFFYVvTqqdSaJgRhmi7"
}
IPNS data:
undefined

IPFS not starting, `ipfs` forcing migrations

ipfs has updated their schema, and check this on launch of their daemon. An outdated schema forces the ipfs daemon to ask for input from stdin, which is breaking functionality in the Dappnet Client.

Version: 1.7.2

Logs:

(base) ➜  ~ /Applications/Dappnet.app/Contents/MacOS/Dappnet
[telemetry] Telemetry enabled: true
[telemetry] Client-Id 6722a25e-76d9-4bcf-95de-988629813952
[telemetry] OS darwin
[telemetry] OS Version 21.2.0
[telemetry] Arch x64
[telemetry] App Version 1.7.2
Dappnet v1.7.2
Do what you think is great work.


/Applications/Dappnet.app/Contents/MacOS/Dappnet

updateServerUrl: https://dappnet-update-server-pi.vercel.app/update/darwin/1.7.2
[telemetry] desktop-app close {"time":1695110654556}
[telemetry] desktop-app open {"time":1695110656358}
LISTENING 0.0.0.0:6801
APP_PATH: /Applications/Dappnet.app/Contents/Resources/app.asar
APP_DATA_PATH: /Users/liamz/Library/Application Support
appPathUnpacked /Applications/Dappnet.app/Contents/Resources/app.asar.unpacked
execPath /Applications/Dappnet.app/Contents/Frameworks/Dappnet Helper.app/Contents/MacOS/Dappnet Helper
ipfsPath /Applications/Dappnet.app/Contents/Resources/app.asar.unpacked/vendor/ipfs/kubo_v0.18.1_darwin-amd64/ipfs
IPFS_PATH /Users/liamz/Library/Application Support/.ipfs/
IPFS_CONFIG_PATH /Users/liamz/Library/Application Support/.ipfs/config
IPFS: starting the daemon
launching ipfs
[exec] /Applications/Dappnet.app/Contents/Resources/app.asar.unpacked/vendor/ipfs/kubo_v0.18.1_darwin-amd64/ipfs daemon
[ipfs] Initializing daemon...
Kubo version: 0.18.1
Repo version: 13

[ipfs] System version: amd64/darwin
Golang version: go1.19.1
Found outdated fs-repo, migrations need to be run.
Run migrations now? [y/N]

Windows version

Here's what we'd need to do:

  • R&D: installing a new root CA
  • porting: build a Windows installer executable using electron-build
  • porting: including an ipfs binary for windows
  • R&D: signing and notarizing the Windows installer
  • testing: testing the desktop client
  • testing: testing the auto update flow
  • testing: testing Chrome .eth resolution and HTTPS with the Windows setup
  • docs: updating the docs for windows

Build a more robust update mechanism

Right now updates are signed and delivered through a update centralized server / CDN.

mathew mcconoughhay voice couldn't you distribute em via dappnet itself?

ie. releases.dappnet.eth/v1.0.0.zip, which downloads via IPFS, and self-authenticates using the hash and ENS

image

Improving IPFS

  • Simpler tooling for deploying .eth dapps.
  • Feedback on upload/download for content.
    • Users can see what % a torrent is, but there’s no equivalent for IPFS.
    • num leechers/seeders
  • Add observability for content dissemination on Cloudflare etc - right now it’s impossible to know.
  • IPNS sucks - it’s worse than DNSLink for production dapps. Automatic republishing is not built-in, IPNS records are centralized (wtf) unlike the IPFS DHT.
  • IPFS node is opaque - I’ve run my node for 1 day and it’s used 10GB of download. What’s it doing? I cannot tell.
  • Understanding/configuration of maximum size limits for content on the user-side.

Potential features:

  • Private IPFS networks that are gated by token-access would be very useful. e.g. imagine a network of websites that permit access based on some condition.
  • Very useful would be an in-browser ipfs API, similar to Metamask, that allows dapps to use "P2P storage" (as opposed to cloud storage).

Fix stupid caching issues with apps that use Web Manifest

Observed behaviour:

  • When you access uniswap.eth, it loads the page from cache. This is because Uniswap uses the web manifest in order to improve the UX for their users.
  • Unfortunately, this also means that this breaks loading from dappnet (sometimes). Ctrl+Shift+R will do a force refresh, no cache.

More investigation needed

Launch announcement

  • #27 the video
  • Update the website with links
  • Clean up the documentation
  • Draft Mirror.xyz post
    • Roadmap
  • Draft Twitter thread
  • Notify people in advance - WeekInEth, etc.
  • Open-source the repo

Building a better web.

  • In-browser IPFS API’s - P2P storage for dapps.
  • Token gating built into the dappnet.
    • Access forum.xyz.eth only if you own a token.
    • Similar to: Unlock Protocol, Pinata submarining for IPFS
    • But at the web-layer - imagine a network of websites that permit access based on some condition.
  • Ability to permalink to articles on the web without them disappearing - built-in IPFS.

Sanity checks for releases

  • Check arch for binaries - lipo -archs vendor/local-proxy/merino is x86_64
  • Check for clean git repo before running npm run publish
  • Tag upon running npm run publish

Universal access to Dappnet - every browser and every OS

  • Support for Safari, MS Edge.
  • Support for Windows, Linux.
  • Support for mobile (iOS, Android).
    • Partner with Rainbow, Coinbase to help build integration into their wallets.
  • Official release via app stores / update channels.
    • Why? Easier install for users, security updates, deliver improved IPFS clients to users.
  • Improve performance.

Add basic analytics and instrumentation for debugging

Work items

  • dappnet documentation
    • add GA
  • desktop app
    • open
    • close
    • launch dapp
    • upgrade
  • local gateway
    • resolve-ens
    • resolve-ipfs
    • resolve-ipns
  • ipfs resource usage monitoring
    • install-id datetime ipfs-daemon-tag ipfs-libp2p-peerid cpu-usage net-usage storage-usage
  • update server
    • page view

How can you improve when you don't measure? What do we want to improve?

  • Resolution speeds for .eth domains.
  • Resolution speeds for IPFS content.
  • Resource usage for P2P downloads (CPU, network).
  • Convenience of Dappnet homescreen launcher.
  • Convenience of which dapps are useful for users (consequence: come pre-installed by default).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.