{"action":"created","issue":{"url":"https://api.github.com/repos/SuperTux88/diaspora_federation/issues/26","repository_url":"https://api.github.com/repos/SuperTux88/diaspora_federation","labels_url":"https://api.github.com/repos/SuperTux88/diaspora_federation/issues/26/labels{/name}","comments_url":"https://api.github.com/repos/SuperTux88/diaspora_federation/issues/26/comments","events_url":"https://api.github.com/repos/SuperTux88/diaspora_federation/issues/26/events","html_url":"https://github.com/SuperTux88/diaspora_federation/issues/26","id":131880716,"number":26,"title":"Relayable signature refactoring","user":{"login":"SuperTux88","id":458548,"avatar_url":"https://avatars.githubusercontent.com/u/458548?v=3","gravatar_id":"","url":"https://api.github.com/users/SuperTux88","html_url":"https://github.com/SuperTux88","followers_url":"https://api.github.com/users/SuperTux88/followers","following_url":"https://api.github.com/users/SuperTux88/following{/other_user}","gists_url":"https://api.github.com/users/SuperTux88/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperTux88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperTux88/subscriptions","organizations_url":"https://api.github.com/users/SuperTux88/orgs","repos_url":"https://api.github.com/users/SuperTux88/repos","events_url":"https://api.github.com/users/SuperTux88/events{/privacy}","received_events_url":"https://api.github.com/users/SuperTux88/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"SuperTux88","id":458548,"avatar_url":"https://avatars.githubusercontent.com/u/458548?v=3","gravatar_id":"","url":"https://api.github.com/users/SuperTux88","html_url":"https://github.com/SuperTux88","followers_url":"https://api.github.com/users/SuperTux88/followers","following_url":"https://api.github.com/users/SuperTux88/following{/other_user}","gists_url":"https://api.github.com/users/SuperTux88/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperTux88/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperTux88/subscriptions","organizations_url":"https://api.github.com/users/SuperTux88/orgs","repos_url":"https://api.github.com/users/SuperTux88/repos","events_url":"https://api.github.com/users/SuperTux88/events{/privacy}","received_events_url":"https://api.github.com/users/SuperTux88/received_events","type":"User","site_admin":false},"milestone":null,"comments":16,"created_at":"2016-02-06T17:53:37Z","updated_at":"2016-02-24T09:36:27Z","closed_at":null,"body":"We need to change the signature-method for relayables (comments, likes, ...) to fix bugs like diaspora/diaspora#4269 and to prevent something like this in the future, so that relayables are extendable without breaking everything.\r\n\r\nCurrently the properties and the order is based on the order in the code of diaspora. Because of this we can't change anything, because every change would break old diaspora-versions.\r\n\r\nTo solve this, we can use the content from all xml-elements in the order of the received xml. When receiving a new relayable we need the order of all xml-elements and also the content of unknown (new) elements and use it for signature-verification and also to create the `parent_author_signature` and send it to other receivers, because they need it to verify the signatures.\r\n\r\nIf we want to support fetch/resend of this relayable, we need to save the following if we are the owner of the parent:\r\n* order of the received xml\r\n* additional (unknown) fields\r\n* `author_signature`\r\n\r\nWith these information we can recreate a valid xml at any time.\r\n\r\n## The following changes are planned\r\n\r\n### v0.1.0 (for diaspora 0.6.0.0)\r\n\r\n- [x] **add new signature-logic**  \r\nBecause old pods send the xml in the same order as used for the signature, we can use the new logic for past and future messages.\r\n\r\n### v0.2.0 (3-4 diaspora minor-releases after diaspora 0.6.0.0)\r\n\r\n- [ ] **add new properties to relayable entities**  \r\nBecause v0.1.0 added support for new properties, we can start using this now. But old (pre 0.6.0.0) pods can't verify these new messages."},"comment":{"url":"https://api.github.com/repos/SuperTux88/diaspora_federation/issues/comments/188162270","html_url":"https://github.com/SuperTux88/diaspora_federation/issues/26#issuecomment-188162270","issue_url":"https://api.github.com/repos/SuperTux88/diaspora_federation/issues/26","id":188162270,"user":{"login":"redmatrix","id":11742850,"avatar_url":"https://avatars.githubusercontent.com/u/11742850?v=3","gravatar_id":"","url":"https://api.github.com/users/redmatrix","html_url":"https://github.com/redmatrix","followers_url":"https://api.github.com/users/redmatrix/followers","following_url":"https://api.github.com/users/redmatrix/following{/other_user}","gists_url":"https://api.github.com/users/redmatrix/gists{/gist_id}","starred_url":"https://api.github.com/users/redmatrix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/redmatrix/subscriptions","organizations_url":"https://api.github.com/users/redmatrix/orgs","repos_url":"https://api.github.com/users/redmatrix/repos","events_url":"https://api.github.com/users/redmatrix/events{/privacy}","received_events_url":"https://api.github.com/users/redmatrix/received_events","type":"User","site_admin":false},"created_at":"2016-02-24T09:36:27Z","updated_at":"2016-02-24T09:36:27Z","body":"My comments on this thread have been strictly professional; and we are discussing an issue which has ramifications outside the user base of those using Diaspora code. The solution needs to be coordinated against three different projects with different development environments and schedules. I'm discussing technical issues and offering implementation suggestions. Nothing more. If the community feels they aren't workable, then they aren't workable. Fine. This comment is the only one that diverges from technical discussion. I apologise if you find my frank discussion manner confrontational in some way. It is not intended and no slight is intended against the good people of Diaspora or the work they are doing. I don't see a bright future in extending XML based protocols in 2016. That's a personal opinion and this is reflected in my response. It is not a slight or jab. I also realise that code has to be maintained. That's reality and reality wins. So any solution that achieves the desired result is better than none. \r\n\r\nI believe personal attacks and unprofessional behaviour towards others violates the Diaspora code of conduct. I find this level of unprofessionalism in a technical discussion distasteful and unwarranted. That is all. Goodbye."}}