{"action":"created","issue":{"url":"https://api.github.com/repos/trust-net/dag-lib-go/issues/22","repository_url":"https://api.github.com/repos/trust-net/dag-lib-go","labels_url":"https://api.github.com/repos/trust-net/dag-lib-go/issues/22/labels{/name}","comments_url":"https://api.github.com/repos/trust-net/dag-lib-go/issues/22/comments","events_url":"https://api.github.com/repos/trust-net/dag-lib-go/issues/22/events","html_url":"https://github.com/trust-net/dag-lib-go/issues/22","id":365744832,"node_id":"MDU6SXNzdWUzNjU3NDQ4MzI=","number":22,"title":"Iteration 1: Simple TX propagation across app nodes online at genesis time","user":{"login":"gnulib","id":7948960,"node_id":"MDQ6VXNlcjc5NDg5NjA=","avatar_url":"https://avatars1.githubusercontent.com/u/7948960?v=4","gravatar_id":"","url":"https://api.github.com/users/gnulib","html_url":"https://github.com/gnulib","followers_url":"https://api.github.com/users/gnulib/followers","following_url":"https://api.github.com/users/gnulib/following{/other_user}","gists_url":"https://api.github.com/users/gnulib/gists{/gist_id}","starred_url":"https://api.github.com/users/gnulib/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnulib/subscriptions","organizations_url":"https://api.github.com/users/gnulib/orgs","repos_url":"https://api.github.com/users/gnulib/repos","events_url":"https://api.github.com/users/gnulib/events{/privacy}","received_events_url":"https://api.github.com/users/gnulib/received_events","type":"User","site_admin":false},"labels":[{"id":1061738502,"node_id":"MDU6TGFiZWwxMDYxNzM4NTAy","url":"https://api.github.com/repos/trust-net/dag-lib-go/labels/Epic","name":"Epic","color":"0e8a16","default":false},{"id":1076126233,"node_id":"MDU6TGFiZWwxMDc2MTI2MjMz","url":"https://api.github.com/repos/trust-net/dag-lib-go/labels/MVP","name":"MVP","color":"deb5f4","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-10-02T05:19:25Z","updated_at":"2018-10-09T00:11:19Z","closed_at":null,"author_association":"COLLABORATOR","body":"This is the first iteration for MVP defined in #21, as following:\r\n### Objective\r\n_As a native GO application, I can instantiate a DLT stack library to submit a transaction, so that my transaction gets propagated to all other application nodes that are online since the genesis time and have processed all preceding transactions on the network._\r\n\r\n### Assumptions\r\n* all app nodes are initialized and connected to the network before first transaction is submitted (node's do not join an existing network with previous history)\r\n* nodes stay online and connected to the network for duration/life of the application/experiment\r\n* nodes do not need to persist and restore transaction history or consensus state\r\n* all nodes are completely reliable (no fault tolerance required) and honest (no competing transactions are submitted)\r\n* all nodes in the network are exactly identical and support one single application\r\n\r\n### Acceptance Criteria\r\n* p2p: discovery and connection, basic handshake for protocol version compatibility\r\n* endorsement: pass through, no anchoring and submission, no peer sync (all nodes online at genesis)\r\n* shard: pass through (no app filtering, no shard membership, no headless node)\r\n* privacy: pass through (no payload encryption/decryption/exchange)\r\n* consensus: basic handshake for app version compatibility (should this actually be in shard layer?), no peer sync (all nodes online at genesis), no conflict/concurrency resolution, no persistence\r\n* demo app: a simple network counter app that sends increment and decrement counter op transactions once all nodes are setup and connected (i.e. all nodes online at genesis)"},"comment":{"url":"https://api.github.com/repos/trust-net/dag-lib-go/issues/comments/428018031","html_url":"https://github.com/trust-net/dag-lib-go/issues/22#issuecomment-428018031","issue_url":"https://api.github.com/repos/trust-net/dag-lib-go/issues/22","id":428018031,"node_id":"MDEyOklzc3VlQ29tbWVudDQyODAxODAzMQ==","user":{"login":"gnulib","id":7948960,"node_id":"MDQ6VXNlcjc5NDg5NjA=","avatar_url":"https://avatars1.githubusercontent.com/u/7948960?v=4","gravatar_id":"","url":"https://api.github.com/users/gnulib","html_url":"https://github.com/gnulib","followers_url":"https://api.github.com/users/gnulib/followers","following_url":"https://api.github.com/users/gnulib/following{/other_user}","gists_url":"https://api.github.com/users/gnulib/gists{/gist_id}","starred_url":"https://api.github.com/users/gnulib/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnulib/subscriptions","organizations_url":"https://api.github.com/users/gnulib/orgs","repos_url":"https://api.github.com/users/gnulib/repos","events_url":"https://api.github.com/users/gnulib/events{/privacy}","received_events_url":"https://api.github.com/users/gnulib/received_events","type":"User","site_admin":false},"created_at":"2018-10-09T00:11:19Z","updated_at":"2018-10-09T00:11:19Z","author_association":"COLLABORATOR","body":"## Application Handshake, really?\r\nApplication handshake in the DAG world does not makes sense. Reason being, application nodes may not even be connecting directly, they may go though intermediary peer nodes that are either headless, or support some other applications. Moreover, actual transactions (and any other application messages) would actually have the application ID and a signature from that ID, which can be used to accept or discard the message by application layer. DLT stack will gaurantee that if an application message is sent to application's callback, then it has been validated to have come from the application whose ID is listed as signer in the message.\r\n\r\nThis means, for iteration 1, we'll only have 1 application message, the transaction message, which will be signed using application's p2p node's private key."}}
{"actor":{"display_login":"gnulib"}}