{"action":"created","issue":{"url":"https://api.github.com/repos/opentimestamps/opentimestamps-server/issues/39","repository_url":"https://api.github.com/repos/opentimestamps/opentimestamps-server","labels_url":"https://api.github.com/repos/opentimestamps/opentimestamps-server/issues/39/labels{/name}","comments_url":"https://api.github.com/repos/opentimestamps/opentimestamps-server/issues/39/comments","events_url":"https://api.github.com/repos/opentimestamps/opentimestamps-server/issues/39/events","html_url":"https://github.com/opentimestamps/opentimestamps-server/pull/39","id":308977235,"number":39,"title":"Online incremental backup","user":{"login":"RCasatta","id":6470319,"avatar_url":"https://avatars2.githubusercontent.com/u/6470319?v=4","gravatar_id":"","url":"https://api.github.com/users/RCasatta","html_url":"https://github.com/RCasatta","followers_url":"https://api.github.com/users/RCasatta/followers","following_url":"https://api.github.com/users/RCasatta/following{/other_user}","gists_url":"https://api.github.com/users/RCasatta/gists{/gist_id}","starred_url":"https://api.github.com/users/RCasatta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RCasatta/subscriptions","organizations_url":"https://api.github.com/users/RCasatta/orgs","repos_url":"https://api.github.com/users/RCasatta/repos","events_url":"https://api.github.com/users/RCasatta/events{/privacy}","received_events_url":"https://api.github.com/users/RCasatta/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-03-27T13:49:16Z","updated_at":"2018-04-11T16:08:57Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/opentimestamps/opentimestamps-server/pulls/39","html_url":"https://github.com/opentimestamps/opentimestamps-server/pull/39","diff_url":"https://github.com/opentimestamps/opentimestamps-server/pull/39.diff","patch_url":"https://github.com/opentimestamps/opentimestamps-server/pull/39.patch"},"body":"Upgrade the calendar server with a new endpoint `/experimental/backup/[chunk_number]`.\r\nThe endpoint returns a serialized structure containing 1000 timestamp from the calendar server. If [chunk_number] is 0, it returns the commitment from 0 to 999, if 1 from 1000 to 1999 and so on. The commitment number represent the one saved in the calendar journal. By grouping the commitments in chunk of 1000 most of the merkle paths to the block header merkle root are shared and this make the process efficient. Since the client can remember the last chunk asked, the client could keep the backup synced in an incremental fashion avoiding the problems we have in current backup process.\r\n\r\nInside this PR another process entry point is included `otsd-backup.py`. This launch a process which ask the other calendars for their backups, once he receive the answer, he checks the data contains valid attestation and operations with a local node, if the check passes it writes all the data in a local db. Moreover it contains a stripped down version of the calendar http server with only the `/timestamp/` endpoint. Thus a backup server could effectively be queried in place of the calendar server it is backupping,.\r\n"},"comment":{"url":"https://api.github.com/repos/opentimestamps/opentimestamps-server/issues/comments/380508194","html_url":"https://github.com/opentimestamps/opentimestamps-server/pull/39#issuecomment-380508194","issue_url":"https://api.github.com/repos/opentimestamps/opentimestamps-server/issues/39","id":380508194,"user":{"login":"RCasatta","id":6470319,"avatar_url":"https://avatars2.githubusercontent.com/u/6470319?v=4","gravatar_id":"","url":"https://api.github.com/users/RCasatta","html_url":"https://github.com/RCasatta","followers_url":"https://api.github.com/users/RCasatta/followers","following_url":"https://api.github.com/users/RCasatta/following{/other_user}","gists_url":"https://api.github.com/users/RCasatta/gists{/gist_id}","starred_url":"https://api.github.com/users/RCasatta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RCasatta/subscriptions","organizations_url":"https://api.github.com/users/RCasatta/orgs","repos_url":"https://api.github.com/users/RCasatta/repos","events_url":"https://api.github.com/users/RCasatta/events{/privacy}","received_events_url":"https://api.github.com/users/RCasatta/received_events","type":"User","site_admin":false},"created_at":"2018-04-11T16:08:56Z","updated_at":"2018-04-11T16:08:56Z","author_association":"MEMBER","body":"first issue should be solved with 416d30a and second issue with 7083f32"}}
{"actor":{"display_login":"RCasatta"}}