Git Product home page Git Product logo

yours-core's People

Contributors

aramkris avatar chiguireitor avatar chris-marie avatar clemensley avatar darrenrm avatar deepakraous1 avatar ember-tomster avatar georgevaccaro avatar go1dfish avatar halseth avatar jdloft avatar kothar avatar kyletorpey avatar martindale avatar mashaal avatar node11 avatar ryanxcharles avatar salis avatar smcki012 avatar willy-b 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yours-core's Issues

dattcore: Peers: Network connections over Web RTC using simplepeer

It needs to be possible to run two instances of Datt where each peer connects to the other and they can share data. We do not necessarily need a working rendezvous server and we do not need to support more than two users at the same time (although there's no reason why our code should be deliberately limited to two users).

dattcore: DB: Payment action

There will be various "actions" a user can perform on a piece of content, such as paying the content or flagging it as inappropriate. We don't need to support flagging for MVP, we need to support payments. Note that because payments are on the blockchain, we don't really need the payment itself to be listed here, but we somehow need to communicate which person made the payment. An easy way to do this is to just record the payment in the database along with a signed message from the person who paid. We could also consider putting usernames in OP_RETURN, however long-term we won't be using normal bitcoin transactions at all, but rather transactions on a payment network. So having an action type for "payment" seems like the simplest thing to do for now that is also forwards-compatible.

dattcore: Blockchain: (Mock) get recent block info

Datt will make use of "signing the latest blockhash" to prove a signature is recent over and over. For now, we don't need to do this for real, but we need to at least mock up the latest block information which we can use throughout the app. Later, we can replace this with properly updated information.

dattcore: Somehow store hash of ContentAuth on the thing

The easiest method may simply be to put the hash directly on the object like a normal property. We need access to the hash too frequently to have to recalculate it all the time. Another option is to put it on DBContentAuth, or perhaps a new structure, MsgContentAuth.

ES2015: use updated object-literal notation everywhere

There are some cool things you can do with object literals in ES2015, including making an object like {var1, var2, var3}, at least some of which are supported in node 4.0. We should update the entire codebase to make use of these features and then stick with them from there on out.

ES2015: use arrow functions

We're using node 4.0 and babel, both of which support arrow functions. Promise .thens and callbacks should all be arrow functions. We need to update all appropriate instances throughout the entire codebase to use arrow functions, and then use them exclusively where appropriate from then on.

dattcore: Create non-blocking to/from methods for objects with crypto, and asynchronous methods where non-blocking not possible

Sometimes we want to convert a buffer into a crypto object, such as a public key or an extended public key, or our own objects like ContentAuth, but we don't want the to/from methods to block. Unfortunately some of the crypto in the to/from methods do block, such as converting a compressed public key into a pubkey object. We need to create non-blocking methods for these objects.

  • Anything that involves compressed public keys should have an alternative that uses uncompressed public keys, because converting to/from uncompressed does not do elliptic curve math and thus does not block.
  • BIP32 extended public keys and private keys have the same issue, plus they also have a checksum in string format.

dattcore: Msg type: Original content

It should be possible to create new "original content" which gets posted to the "front-page". We don't need to support multiple different categories for the prototype - just one "page" of content, the "front-page". Not that original content must involve signing the latest block hash to prove the content is new, to prevent users from spamming old content from other users.

dattreact: New content should show up as soon as it's posted

We need to be able to show content right away, not just because it is nice when you see your own content, but I'm pretty sure solving this will allow us to see content that other people post immediately. Perhaps this is an appropriate time to start using events.

dattcore: Blockchain: Connection to bitcore for UTXOs and broadcast TXs

Although long-term we desire SPV in a browser, unfortunately that is very complicated and the state of software that does SPV in a browser is immature. We are better of for now to use a blockchain explorer. btcd has an optional address index when you can use to get UTXOs. And of course, you can also use it to broadcast transactions. This will worrk for a prototype.

docs: Document msg data structures

Right now there is some information about what the msg data structures are in dattdocs, however they are not an accurate reflection of what is actually in the code. We need to either put some documentation in this repo, or update dattdocs to be accurate.

dattcore: Make asynchronous version of bip32 to/from JSON

Right now we're using a hex version of bip32 keys to send them to/from works and store/retrieve from database. Unfortunately this is a blocking operation because converting compressed pubkeys to a pubkey requires elliptic curve math. We need to implement asynchronous to/from JSON methods so this stuff doesn't block. When we do this, we could also consider using base58check instead of hex, which is the standard way to represent bip32 keys (xprv/xpub).

ES2015: use new class notation throughout codebase

We can save a few lines of code by using the new class notation. Like any other style decision, we need to do this everywhere or not at all, so we really need to update the entire codebase at once to do this.

build: Fix error handling in gulpfile so gulp serve doesn't break

There is a problem with error handling in the gulp file where when you run "gulp serve" if you get some kind of syntax error where browserify doesn't compile, browserify bundling the files. So we need to make the error handling work correctly so that when there is an error you can just fix the error and refresh the page without having to end gulp serve and rebuild everything.

p2p: Msg type: Send list of recent content

It needs to be possible to send recent content to a peer. Long-term we may want to send hashes which can them be retrieved independently. For now it may be simpler to just send the content directly, i.e. send the titles of the front-page along with their bodies, which may or may not be displayed.

dattcore: DB: "Authing" should save content to DB

When you set your name, this creates a new msgauth which can be broadcast to peers. MsgAuth is based on ContentAuth. We should save this content to the database, so that we can display it on the front-page if desired.

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.