{"action":"created","issue":{"url":"https://api.github.com/repos/BitcoinUnlimited/BitcoinUnlimited/issues/973","repository_url":"https://api.github.com/repos/BitcoinUnlimited/BitcoinUnlimited","labels_url":"https://api.github.com/repos/BitcoinUnlimited/BitcoinUnlimited/issues/973/labels{/name}","comments_url":"https://api.github.com/repos/BitcoinUnlimited/BitcoinUnlimited/issues/973/comments","events_url":"https://api.github.com/repos/BitcoinUnlimited/BitcoinUnlimited/issues/973/events","html_url":"https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/973","id":297795321,"number":973,"title":"graphene: first draft","user":{"login":"bissias","id":1005112,"avatar_url":"https://avatars2.githubusercontent.com/u/1005112?v=4","gravatar_id":"","url":"https://api.github.com/users/bissias","html_url":"https://github.com/bissias","followers_url":"https://api.github.com/users/bissias/followers","following_url":"https://api.github.com/users/bissias/following{/other_user}","gists_url":"https://api.github.com/users/bissias/gists{/gist_id}","starred_url":"https://api.github.com/users/bissias/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bissias/subscriptions","organizations_url":"https://api.github.com/users/bissias/orgs","repos_url":"https://api.github.com/users/bissias/repos","events_url":"https://api.github.com/users/bissias/events{/privacy}","received_events_url":"https://api.github.com/users/bissias/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":17,"created_at":"2018-02-16T14:05:15Z","updated_at":"2018-02-27T20:08:49Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/BitcoinUnlimited/BitcoinUnlimited/pulls/973","html_url":"https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/973","diff_url":"https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/973.diff","patch_url":"https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/973.patch"},"body":"This commit provides a functional implementation of graphene blocks. All unit tests pass and the QA test grapheneblocks.py also passes. From log output it is evident that graphene blocks are requested, created, serialized, deserialized, and reconstructed. However there is still work to be done. My general approach has been to largely replicate the workflow of xthin blocks. Thus I have replicated large portions of the xthin code. It's not clear that this is preferable to sharing code between the two block types. There also remains the question of transaction ordering for graphene blocks. If it is possible to commit a canonical ordering before graphene, then we will want to change this patch accordingly.\r\n\r\nThe code will also require further optimization (primarily block size optimization) before being deployed to production. My aim is to initiate a review for the basic workflow now and continue to work on optimization while graphene is running on the testnet. The following optimization tasks remain.\r\n\r\n* Update Bloom filter constants for optimal symdiff\r\n* Employ numerical symdiff calculation for greater accuracy\r\n* Use smaller dirty hashes for IBLT\r\n* Consider options for compressing transaction ordering: smaller hashes or perhaps a different data structure\r\n"},"comment":{"url":"https://api.github.com/repos/BitcoinUnlimited/BitcoinUnlimited/issues/comments/369009534","html_url":"https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/973#issuecomment-369009534","issue_url":"https://api.github.com/repos/BitcoinUnlimited/BitcoinUnlimited/issues/973","id":369009534,"user":{"login":"awemany","id":13838274,"avatar_url":"https://avatars3.githubusercontent.com/u/13838274?v=4","gravatar_id":"","url":"https://api.github.com/users/awemany","html_url":"https://github.com/awemany","followers_url":"https://api.github.com/users/awemany/followers","following_url":"https://api.github.com/users/awemany/following{/other_user}","gists_url":"https://api.github.com/users/awemany/gists{/gist_id}","starred_url":"https://api.github.com/users/awemany/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awemany/subscriptions","organizations_url":"https://api.github.com/users/awemany/orgs","repos_url":"https://api.github.com/users/awemany/repos","events_url":"https://api.github.com/users/awemany/events{/privacy}","received_events_url":"https://api.github.com/users/awemany/received_events","type":"User","site_admin":false},"created_at":"2018-02-27T20:08:49Z","updated_at":"2018-02-27T20:08:49Z","author_association":"NONE","body":"@bissias : Yes that kind of interface makes sense for me and it seems easy enough to integrate that into the TBD weakblocks protocol messages. Great, thank you! I guess I'll eventually rebase onto your patch then, as soon as I am at the stage where I want to clean up my currently messy & hacky abuse of the `thinblocks` code.\r\n\r\nAnd there we get to your second point: My own, personal two satoshis on this is that such a refactoring would be awesome to do and much riskier things have been done to the code.\r\n\r\nThis might be getting a bit OT now, but there's a couple places in the current block transmission code that are fairly closely tied to block validation logic. Because weak blocks take different paths at some points in the validation logic, if such any wants to do such a refactoring, it should IMO also make sure to decouple that properly.\r\n"}}
{"actor":{"display_login":"awemany"}}