{"action":"created","issue":{"url":"https://api.github.com/repos/NebulousLabs/Sia/issues/184","labels_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/184/labels{/name}","comments_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/184/comments","events_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/184/events","html_url":"https://github.com/NebulousLabs/Sia/pull/184","id":53717471,"number":184,"title":"RPC errors","user":{"login":"lukechampine","id":3344749,"avatar_url":"https://avatars.githubusercontent.com/u/3344749?v=3","gravatar_id":"","url":"https://api.github.com/users/lukechampine","html_url":"https://github.com/lukechampine","followers_url":"https://api.github.com/users/lukechampine/followers","following_url":"https://api.github.com/users/lukechampine/following{/other_user}","gists_url":"https://api.github.com/users/lukechampine/gists{/gist_id}","starred_url":"https://api.github.com/users/lukechampine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukechampine/subscriptions","organizations_url":"https://api.github.com/users/lukechampine/orgs","repos_url":"https://api.github.com/users/lukechampine/repos","events_url":"https://api.github.com/users/lukechampine/events{/privacy}","received_events_url":"https://api.github.com/users/lukechampine/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-01-08T05:57:46Z","updated_at":"2015-01-08T16:37:52Z","closed_at":"2015-01-08T06:32:26Z","pull_request":{"url":"https://api.github.com/repos/NebulousLabs/Sia/pulls/184","html_url":"https://github.com/NebulousLabs/Sia/pull/184","diff_url":"https://github.com/NebulousLabs/Sia/pull/184.diff","patch_url":"https://github.com/NebulousLabs/Sia/pull/184.patch"},"body":"RPCs now send and receive errors. Registered functions like `SendBlocks` that return an error will write that error to the connection. If it's a `net.Conn` function like `RetrieveFile`, you have to write the error manually. All existing RPCs have been updated to make use of errors. However, there still isn't much logic for processing specific RPC errors, except in `CatchUp`, which now looks for a specific \"more blocks are available\" error."},"comment":{"url":"https://api.github.com/repos/NebulousLabs/Sia/issues/comments/69206552","html_url":"https://github.com/NebulousLabs/Sia/pull/184#issuecomment-69206552","issue_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/184","id":69206552,"user":{"login":"lukechampine","id":3344749,"avatar_url":"https://avatars.githubusercontent.com/u/3344749?v=3","gravatar_id":"","url":"https://api.github.com/users/lukechampine","html_url":"https://github.com/lukechampine","followers_url":"https://api.github.com/users/lukechampine/followers","following_url":"https://api.github.com/users/lukechampine/following{/other_user}","gists_url":"https://api.github.com/users/lukechampine/gists{/gist_id}","starred_url":"https://api.github.com/users/lukechampine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukechampine/subscriptions","organizations_url":"https://api.github.com/users/lukechampine/orgs","repos_url":"https://api.github.com/users/lukechampine/repos","events_url":"https://api.github.com/users/lukechampine/events{/privacy}","received_events_url":"https://api.github.com/users/lukechampine/received_events","type":"User","site_admin":false},"created_at":"2015-01-08T16:37:52Z","updated_at":"2015-01-08T16:37:52Z","body":"sure. I'm thinking the package should be renamed anyway (sianet?), so I'll lump those two changes together."}}