Code Monkey home page Code Monkey logo

lbry.tech's Introduction

lbry.tech

We came from the future to help you save the Internet
Technical documentation website for the LBRY protocol.

Prerequisites

  • Node (version >= 10)

Notes

  • This repo will not run locally if you do not also have the LBRY app/daemon and the web-daemon running.
  • When running locally and completing the tipping example in Playground, the LBC donated to a creator comes from your LBC balance. Otherwise, the example will fail. On production, the donated LBC comes from LBRY.

Installation

npm i

Development

npm run watch and visit localhost:8080

Testing

npm test

Production

npm start

Usage

Visit LBRY.tech to see this repo in production.

Contributing

Contributions to this project are welcome, encouraged, and compensated.

For more details, see CONTRIBUTING.md.

License

This project is MIT licensed. For the full license, see LICENSE.

Security

We take security seriously. Please contact [email protected] regarding any security issues.

Our PGP key is here if you need it.

Contact

The primary contact for this project is Thomas Zarebczan ([email protected]).

lbry.tech's People

Contributors

adamzwinter avatar binaryflesh avatar bryanlunduke avatar chaman-k avatar colinfruit avatar eatdostacos avatar eukreign avatar filipnyquist avatar hackrush01 avatar kauffj avatar keikari avatar krisseck avatar lavradis avatar lyoshenka avatar michizhou avatar misspellted avatar nathan78906 avatar netopwibby avatar nikooo777 avatar osilkin98 avatar pavelloz avatar quirkyrobots avatar sameshl avatar shyba avatar strikerrus avatar tiger5226 avatar tzarebczan avatar vulongm avatar wick avatar ykris45 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

Watchers

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

lbry.tech's Issues

Commit Feed

It'd be cool if on the homepage or somewhere on the site there was just a feed of all of the commits happening at LBRY across all repos.

Hook: Daemon MemoryError on Step 3

Using the wallet_send method, the daemon returns a MemoryError.

{
  "error": {
    "code": -32500,
    "data": [
      "  File \"site-packages/twisted/internet/defer.py\", line 1299, in _inlineCallbacks",
      "    ",
      "  File \"site-packages/lbrynet/core/Wallet.py\", line 1101, in _tip_claim",
      "    ",
      "  File \"site-packages/lbrynet/core/Wallet.py\", line 984, in _run_cmd_as_defer_succeed",
      "    ",
      "  File \"site-packages/lbryum/commands.py\", line 2248, in sendwithsupport",
      "    ",
      "  File \"site-packages/lbryum/commands.py\", line 2207, in support",
      "    ",
      "exceptions.MemoryError: "
    ],
    "message": "MemoryError"
  },
  "id": null,
  "jsonrpc": "2.0"
}

Markdown based content

The main pages of the website should be renderable via Markdown files located in the content folder.

A sample Markdown file has been added here.

This file contains FrontMatter metadata, but this should only be used on lbry.tech if it is necessary or useful.

Fix Hook dependencies

Due to Vuetify being removed, Hook is not currently functioning. Fix the needed parts and test it's functionality. Also make a sample page where this can be tested out.

Hook: Actual publication on Step 2

The daemon requires the image to be a local file. How do we get the file uploaded to the daemon server, or is there another way to do this?

List of topics for articles

  • Application Case Study: Spee.ch
  • What are Claims, how they work
  • URLs, Name Resolution
  • DHT?
  • How to run wallet server/reflector/search server/chainquery
  • Design / branding
  • using lbrynet as a library in your code
  • Validating signatures on claims

Local server functionality

Have a simple local server with node. Should accept the LBRY daemon parameters and it forwards them to daemon.lbry.tech.

Resources

  • Links to all social medias (reddit, discord, slack)
  • Links to source code

Turn Documentation into first-class page

Rather than being a markdown file, instead this page should do two things:

  • Drive people to whitepaper and API specifications
  • Catch-all list of other resource and documentation articles

Design

Establish a base design using Lbry branding, built on Vuetify.

Serving pages without .html and idealized folder structure

  • All Markdown content is contained within a single folder (additional organization can exist within this folder, if necessary or desired, but it should not be necessary to call every file index.md).
  • All first-class pages as well as resource articles can be served by URLs that do not include a trailing .html or an indication of the folder structure. E.g. lbry.tech/repository-standards should serve the Markdown file located at resources/repository-stanards.md).

How to Develop (Build)

Start with an outline
and assign sections

  • Examples?
  • Real-life implementations?
  • Link to official app source code
  • Quickstart?

Before release

  • Optimize Webpack for production
  • SEO (for documentation links etc)

Basic Integration Tests

It'd be good if there were some simple tests that ensured common pages render and return a 200 status code.

More complex or thorough tests could be created for the hook, as well as well the daemon endpoint.

API Documentation

This is the epic issue to collect all changes required to have API documentation work inside of lbry.tech.

After some discussion, there is now some uncertainty as to whether OpenAPI/Swagger is the right solution.

Required properties:

  • Web-based display of all endpoints/methods, including parameters, description, and example response signature. Methods should be directly linkable.
  • Modern, clean, friendly, usable UI (Stripe is some of the best API documentation I've ever seen / used)
  • Method documentation in-code. The documentation tooling should be able to take this documentation and generate the interactive page(s).
  • Build-integrable tooling (not sure how this one wouldn't be possible though :)

Ideal properties:

  • Identical or similar API documentation standard across repositories.
  • Method documentation located in-line with method entries, rather than a separate YML/markup file.
  • Handles both CLI and JSON-RPC ways of method calling
  • Auto code-gen, live testing, and any other benefits from Swagger.

Other considerations:

  • API versioning?

Remove Vuetify framework

Since Vuetify is underutilized in this project, it is the best to remove it. This will make build process faster and the client needs to download less. It also provides more creative freedom.

Some basic design elements needs to recreated, like forms and such.

This issue also concerns #34

Hook

  • Finish Step 1
  • Finish Step 2
  • Finish Step 3
  • Test on mobile
  • Test input validation etc
  • Improve styling (whitespace, colors etc)
  • Publish on Step 2: How is actually implemented?
  • Fix MemoryError on Step 3

Figure out a way to sync docs/kb across repos

@kauffj commented on Thu Dec 07 2017

There's good content here: https://github.com/lbryio/lbryschema/tree/master/docs

At least some of this should also be on lbry.io.


@tzarebczan commented on Tue May 15 2018

@kauffj should we close this as these docs will now live on lbry.tech?


@kauffj commented on Tue May 15 2018

I think this question still remains, but could now live in lbry.tech.

It's not clear that all technical documentation should live in the lbry.tech repo. In some cases, it may make sense for the documentation to live in the project repo and just be imported/displayed by lbry.tech.

Make sure that all pages are reachable in navigation

By creating a new markdown file, Vuepress will generate an url for that piece of content. This content is only reachable by accessing that url directly. We should make sure that all these pages are linked somewhere in navigation. Or, we can generate a sitemap that has all of these pages linked.

"In dev" notification

Have a large notification or similar element to display that this website is still in active current development

Hook: Step 2 Validation

Changes to step 2:

General

  • Make sure README has correct build instructions
  • Basic navigation

Dynamic page/resource architecture

In addition to defined pages being editable via Markdown, it should also be possible to create a markdown file and have this correspond directly to resource pages.

For example, a markdown file saved at content/resources/wallet-app-authentication.md could correspond to and be served in a rendered form at lbry.tech/resources/wallet-app-authentication.

Sidebar functionality is missing

This functionality was removed on redesign, make sure it is implemented again or message if it's not needed.

There's already a Sidebar component ready in Components folder.

Harden hook

Ensure we've done all we can to reduce abuse of the hook. Do we need to whitelist claim recipients? Require certain credentials? etc.

(And whitelist / restrict allowed calls to daemon.lbry.tech)

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.