{"action":"created","comment":{"url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/comments/197045944","pull_request_review_id":130708766,"id":197045944,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NzA0NTk0NA==","diff_hunk":"@@ -327,6 +384,157 @@ public void ConnectHeaders_SupplyHeaders_ToDownloadArraySizeSameAsNumberOfHeader\n             Assert.Equal(headersToDownloadCount, peer2Headers.Count);\n         }\n \n+        /// <summary>\n+        /// Issue 8 @ Create chained header tree component #1321\n+        /// We have a chain and peer B is on the best chain.\n+        /// After that peer C presents an alternative chain with a forkpoint below B's Tip.\n+        /// After that peer A prolongs C's chain (but sends all headers from the fork point) with a few valid and one invalid.\n+        /// Make sure that C's chain is not removed - only headers after that.\n+        /// </summary>\n+        [Fact]\n+        public void ConnectHeaders_MultiplePeersWithForks_CorrectTip()\n+        {\n+            TestContext testContext = new TestContextBuilder().Build();\n+            ChainedHeaderTree chainedHeaderTree = testContext.ChainedHeaderTree;\n+            ChainedHeader chainTip = testContext.ExtendAChain(5);\n+            chainedHeaderTree.Initialize(chainTip, true);\n+            List<BlockHeader> listOfExistingHeaders = testContext.ChainedHeaderToList(chainTip, 5);\n+\n+            chainedHeaderTree.ConnectNewHeaders(2, listOfExistingHeaders);\n+            ChainedHeader peerTwoTip = chainedHeaderTree.GetChainedHeaderByPeerId(2);\n+\n+            // Peer 2 is on the best chain.\n+            // b1 = b2 = b3 = b4 = b5\n+            peerTwoTip.HashBlock.Should().BeEquivalentTo(chainTip.HashBlock);\n+            peerTwoTip.ChainWork.Should().BeEquivalentTo(chainTip.ChainWork);\n+\n+            // Peer 3 presents an alternative chain with a forkpoint below Peer 2's Tip.\n+            // b1 = b2 = b3 = b4 = b5\n+            //         = c3 = c4 = c5\n+            ChainedHeader peerThreeTip = testContext.ExtendAChain(3, chainTip.Previous.Previous.Previous);\n+            List<BlockHeader> listOfNewHeadersFromPeerThree = testContext.ChainedHeaderToList(peerThreeTip, 3);\n+            chainedHeaderTree.ConnectNewHeaders(3, listOfNewHeadersFromPeerThree);\n+            \n+            ChainedHeader fork = chainTip.FindFork(peerThreeTip);\n+            fork.Height.Should().BeLessThan(peerTwoTip.Height);\n+\n+            // Peer 1 prolongs Peer 3's chain with one invalid block.\n+            // c3 = c4 = c5 = |a6| = a7 = a8\n+            const int numberOfBlocksToExtend = 3;\n+            ChainedHeader peerOneTip = testContext.ExtendAChain(numberOfBlocksToExtend, peerThreeTip);\n+            List <BlockHeader> listOfPeerOnesHeaders = testContext.ChainedHeaderToList(peerOneTip, numberOfBlocksToExtend);\n+            \n+            int depthOfInvalidHeader = 2;\n+            BlockHeader invalidBlockHeader = listOfPeerOnesHeaders[depthOfInvalidHeader];\n+            testContext.ChainStateMock.Setup(x => x.MarkBlockInvalid(invalidBlockHeader.GetHash(), null));\n+            testContext.ChainedHeaderValidatorMock.Setup(x => \n+                x.ValidateHeader(It.Is<ChainedHeader>(y => y.HashBlock == invalidBlockHeader.GetHash()))).Throws(new ConnectHeaderException());\n+\n+            int oldChainHeaderTreeCount = chainedHeaderTree.GetChainedHeadersByHash().Count;\n+\n+            Assert.Throws<ConnectHeaderException>(() => chainedHeaderTree.ConnectNewHeaders(1, listOfPeerOnesHeaders));\n+\n+            // Whole chain presented by peer A is not part of the tree (can't extend beyond invalid header).\n+            int chainHeaderTreeCountChange = oldChainHeaderTreeCount - chainedHeaderTree.GetChainedHeadersByHash().Count;\n+\n+            // The two headers beyond the invalid header are removed from CHT\n+            Assert.True(chainHeaderTreeCountChange == depthOfInvalidHeader + 1);\n+\n+            // C's chain remains at same height after A presents the invalid header\n+            Assert.True(chainedHeaderTree.GetChainedHeaderByPeerId(2).Height == peerThreeTip.Height);\n+        }\n+\n+        /// <summary>\n+        /// Issue 9 @ Create chained header tree component #1321\n+        /// Check that everything is always consumed.\n+        /// </summary>\n+        [Fact]\n+        public void ConnectHeaders_MultiplePeers_CheckEverythingIsConsumed()\n+        {\n+            // Chain A is presented by default peer:\n+            // 1a - 2a - 3a - 4a - 5a - 6a - 7a - 8a\n+            TestContext testContext = new TestContextBuilder().Build();\n+            ChainedHeaderTree chainedHeaderTree = testContext.ChainedHeaderTree;\n+            ChainedHeader chainTip = testContext.ExtendAChain(7);\n+            chainedHeaderTree.Initialize(chainTip, true);\n+\n+            // Chain A is extended by Peer 1:\n+            // 1a - 2a - 3a - 4a - 5a - 6a - 7a - 8a - 9a - 10a - 11a - 12a - 13a - 14a - 15a\n+            ChainedHeader peer1ChainTip = testContext.ExtendAChain(6, chainTip);\n+            List<BlockHeader> listOfPeer1NewHeaders = testContext.ChainedHeaderToList(peer1ChainTip, 6);\n+            List<BlockHeader> peer1NewHeaders = listOfPeer1NewHeaders.GetRange(0, 4);\n+\n+            // 4 headers are processed 2 are unprocessed.\n+            ConnectNewHeadersResult connectedNewHeadersResult = chainedHeaderTree.ConnectNewHeaders(1, peer1NewHeaders);\n+            Assert.True(peer1ChainTip.Height - connectedNewHeadersResult.Consumed.Height == 2);\n+\n+            // Remaining headers are presented.\n+            connectedNewHeadersResult = chainedHeaderTree.ConnectNewHeaders(1, listOfPeer1NewHeaders.GetRange(4, 2));\n+            \n+            // All headers are now consumed.\n+            Assert.True(connectedNewHeadersResult.Consumed.Height == peer1ChainTip.Height);\n+\n+            // Peer 2 presents headers that that are already in the tree:\n+            // 11a - 12a - 13a - 14a\n+            List<BlockHeader> listOfSomeExistingHeaders = testContext.ChainedHeaderToList(peer1ChainTip, 14);\n+            listOfSomeExistingHeaders = listOfSomeExistingHeaders.GetRange(10, 4);\n+\n+            // As well as some that are not in it yet:\n+            // 15a - 16a\n+            ChainedHeader peer2ChainTip = testContext.ExtendAChain(2, peer1ChainTip); \n+            List<BlockHeader> listOfNewHeadersFromPeer2 = testContext.ChainedHeaderToList(peer2ChainTip, 2);\n+\n+            List<BlockHeader> listOfNewAndExistingHeaders = listOfSomeExistingHeaders;\n+            listOfNewAndExistingHeaders.AddRange(listOfNewHeadersFromPeer2);","path":"src/Stratis.Bitcoin.Tests/Consensus/ChainedHeaderTreeTest.cs","position":169,"original_position":169,"commit_id":"b76c7d2989904e3e33aa2021251becab00a59399","original_commit_id":"b76c7d2989904e3e33aa2021251becab00a59399","user":{"login":"Aprogiena","id":30052221,"node_id":"MDQ6VXNlcjMwMDUyMjIx","avatar_url":"https://avatars0.githubusercontent.com/u/30052221?v=4","gravatar_id":"","url":"https://api.github.com/users/Aprogiena","html_url":"https://github.com/Aprogiena","followers_url":"https://api.github.com/users/Aprogiena/followers","following_url":"https://api.github.com/users/Aprogiena/following{/other_user}","gists_url":"https://api.github.com/users/Aprogiena/gists{/gist_id}","starred_url":"https://api.github.com/users/Aprogiena/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Aprogiena/subscriptions","organizations_url":"https://api.github.com/users/Aprogiena/orgs","repos_url":"https://api.github.com/users/Aprogiena/repos","events_url":"https://api.github.com/users/Aprogiena/events{/privacy}","received_events_url":"https://api.github.com/users/Aprogiena/received_events","type":"User","site_admin":false},"body":"Why not simply\r\n```\r\nChainedHeader peer2ChainTip = testContext.ExtendAChain(2, peer1ChainTip); \r\nList<BlockHeader> listOfNewAndExistingHeaders = testContext.ChainedHeaderToList(peer2ChainTip, 6);\r\n\r\n```","created_at":"2018-06-21T08:14:13Z","updated_at":"2018-06-21T08:14:14Z","html_url":"https://github.com/stratisproject/StratisBitcoinFullNode/pull/1513#discussion_r197045944","pull_request_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/1513","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/comments/197045944"},"html":{"href":"https://github.com/stratisproject/StratisBitcoinFullNode/pull/1513#discussion_r197045944"},"pull_request":{"href":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/1513"}}},"pull_request":{"url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/1513","id":194315434,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk0MzE1NDM0","html_url":"https://github.com/stratisproject/StratisBitcoinFullNode/pull/1513","diff_url":"https://github.com/stratisproject/StratisBitcoinFullNode/pull/1513.diff","patch_url":"https://github.com/stratisproject/StratisBitcoinFullNode/pull/1513.patch","issue_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/1513","number":1513,"state":"open","locked":false,"title":"Chained Header Tree issues 5, 8, 9 initial check in (#1321)","user":{"login":"thefazzer","id":30984080,"node_id":"MDQ6VXNlcjMwOTg0MDgw","avatar_url":"https://avatars1.githubusercontent.com/u/30984080?v=4","gravatar_id":"","url":"https://api.github.com/users/thefazzer","html_url":"https://github.com/thefazzer","followers_url":"https://api.github.com/users/thefazzer/followers","following_url":"https://api.github.com/users/thefazzer/following{/other_user}","gists_url":"https://api.github.com/users/thefazzer/gists{/gist_id}","starred_url":"https://api.github.com/users/thefazzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thefazzer/subscriptions","organizations_url":"https://api.github.com/users/thefazzer/orgs","repos_url":"https://api.github.com/users/thefazzer/repos","events_url":"https://api.github.com/users/thefazzer/events{/privacy}","received_events_url":"https://api.github.com/users/thefazzer/received_events","type":"User","site_admin":false},"body":"**Chained Header Tree issues 5, 8, 9 initial check in (#1321)**","created_at":"2018-06-12T15:13:31Z","updated_at":"2018-06-21T08:14:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6b21ef0058c9764a0ea6ddc481ac9f646c7b04e7","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":926801084,"node_id":"MDU6TGFiZWw5MjY4MDEwODQ=","url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/labels/pr-review-low","name":"pr-review-low","color":"68A7F3","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/1513/commits","review_comments_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/1513/comments","review_comment_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/comments{/number}","comments_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/1513/comments","statuses_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/statuses/b76c7d2989904e3e33aa2021251becab00a59399","head":{"label":"thefazzer:cht_tests_fazzdev","ref":"cht_tests_fazzdev","sha":"b76c7d2989904e3e33aa2021251becab00a59399","user":{"login":"thefazzer","id":30984080,"node_id":"MDQ6VXNlcjMwOTg0MDgw","avatar_url":"https://avatars1.githubusercontent.com/u/30984080?v=4","gravatar_id":"","url":"https://api.github.com/users/thefazzer","html_url":"https://github.com/thefazzer","followers_url":"https://api.github.com/users/thefazzer/followers","following_url":"https://api.github.com/users/thefazzer/following{/other_user}","gists_url":"https://api.github.com/users/thefazzer/gists{/gist_id}","starred_url":"https://api.github.com/users/thefazzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thefazzer/subscriptions","organizations_url":"https://api.github.com/users/thefazzer/orgs","repos_url":"https://api.github.com/users/thefazzer/repos","events_url":"https://api.github.com/users/thefazzer/events{/privacy}","received_events_url":"https://api.github.com/users/thefazzer/received_events","type":"User","site_admin":false},"repo":{"id":132759918,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI3NTk5MTg=","name":"StratisBitcoinFullNode","full_name":"thefazzer/StratisBitcoinFullNode","owner":{"login":"thefazzer","id":30984080,"node_id":"MDQ6VXNlcjMwOTg0MDgw","avatar_url":"https://avatars1.githubusercontent.com/u/30984080?v=4","gravatar_id":"","url":"https://api.github.com/users/thefazzer","html_url":"https://github.com/thefazzer","followers_url":"https://api.github.com/users/thefazzer/followers","following_url":"https://api.github.com/users/thefazzer/following{/other_user}","gists_url":"https://api.github.com/users/thefazzer/gists{/gist_id}","starred_url":"https://api.github.com/users/thefazzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thefazzer/subscriptions","organizations_url":"https://api.github.com/users/thefazzer/orgs","repos_url":"https://api.github.com/users/thefazzer/repos","events_url":"https://api.github.com/users/thefazzer/events{/privacy}","received_events_url":"https://api.github.com/users/thefazzer/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/thefazzer/StratisBitcoinFullNode","description":"Bitcoin full node in C#","fork":true,"url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode","forks_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/forks","keys_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/keys{/key_id}","collaborators_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/teams","hooks_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/hooks","issue_events_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/issues/events{/number}","events_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/events","assignees_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/assignees{/user}","branches_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/branches{/branch}","tags_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/tags","blobs_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/git/refs{/sha}","trees_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/git/trees{/sha}","statuses_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/statuses/{sha}","languages_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/languages","stargazers_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/stargazers","contributors_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/contributors","subscribers_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/subscribers","subscription_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/subscription","commits_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/commits{/sha}","git_commits_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/git/commits{/sha}","comments_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/comments{/number}","issue_comment_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/issues/comments{/number}","contents_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/contents/{+path}","compare_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/compare/{base}...{head}","merges_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/merges","archive_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/downloads","issues_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/issues{/number}","pulls_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/pulls{/number}","milestones_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/milestones{/number}","notifications_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/labels{/name}","releases_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/releases{/id}","deployments_url":"https://api.github.com/repos/thefazzer/StratisBitcoinFullNode/deployments","created_at":"2018-05-09T13:19:19Z","updated_at":"2018-05-18T14:38:43Z","pushed_at":"2018-06-20T16:43:16Z","git_url":"git://github.com/thefazzer/StratisBitcoinFullNode.git","ssh_url":"git@github.com:thefazzer/StratisBitcoinFullNode.git","clone_url":"https://github.com/thefazzer/StratisBitcoinFullNode.git","svn_url":"https://github.com/thefazzer/StratisBitcoinFullNode","homepage":"https://stratisplatform.com","size":28973,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"stratisproject:master","ref":"master","sha":"2179c5d80b3174f128d99b1a7ebc2c0c9305fae6","user":{"login":"stratisproject","id":15229748,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MjI5NzQ4","avatar_url":"https://avatars0.githubusercontent.com/u/15229748?v=4","gravatar_id":"","url":"https://api.github.com/users/stratisproject","html_url":"https://github.com/stratisproject","followers_url":"https://api.github.com/users/stratisproject/followers","following_url":"https://api.github.com/users/stratisproject/following{/other_user}","gists_url":"https://api.github.com/users/stratisproject/gists{/gist_id}","starred_url":"https://api.github.com/users/stratisproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stratisproject/subscriptions","organizations_url":"https://api.github.com/users/stratisproject/orgs","repos_url":"https://api.github.com/users/stratisproject/repos","events_url":"https://api.github.com/users/stratisproject/events{/privacy}","received_events_url":"https://api.github.com/users/stratisproject/received_events","type":"Organization","site_admin":false},"repo":{"id":67271290,"node_id":"MDEwOlJlcG9zaXRvcnk2NzI3MTI5MA==","name":"StratisBitcoinFullNode","full_name":"stratisproject/StratisBitcoinFullNode","owner":{"login":"stratisproject","id":15229748,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MjI5NzQ4","avatar_url":"https://avatars0.githubusercontent.com/u/15229748?v=4","gravatar_id":"","url":"https://api.github.com/users/stratisproject","html_url":"https://github.com/stratisproject","followers_url":"https://api.github.com/users/stratisproject/followers","following_url":"https://api.github.com/users/stratisproject/following{/other_user}","gists_url":"https://api.github.com/users/stratisproject/gists{/gist_id}","starred_url":"https://api.github.com/users/stratisproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stratisproject/subscriptions","organizations_url":"https://api.github.com/users/stratisproject/orgs","repos_url":"https://api.github.com/users/stratisproject/repos","events_url":"https://api.github.com/users/stratisproject/events{/privacy}","received_events_url":"https://api.github.com/users/stratisproject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/stratisproject/StratisBitcoinFullNode","description":"Bitcoin full node in C#","fork":false,"url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode","forks_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/forks","keys_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/teams","hooks_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/hooks","issue_events_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/events{/number}","events_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/events","assignees_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/assignees{/user}","branches_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/branches{/branch}","tags_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/tags","blobs_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/git/refs{/sha}","trees_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/statuses/{sha}","languages_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/languages","stargazers_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/stargazers","contributors_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/contributors","subscribers_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/subscribers","subscription_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/subscription","commits_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/commits{/sha}","git_commits_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/git/commits{/sha}","comments_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/comments{/number}","issue_comment_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/comments{/number}","contents_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/contents/{+path}","compare_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/merges","archive_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/downloads","issues_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues{/number}","pulls_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls{/number}","milestones_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/milestones{/number}","notifications_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/labels{/name}","releases_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/releases{/id}","deployments_url":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/deployments","created_at":"2016-09-03T04:32:51Z","updated_at":"2018-06-20T11:27:52Z","pushed_at":"2018-06-21T00:15:09Z","git_url":"git://github.com/stratisproject/StratisBitcoinFullNode.git","ssh_url":"git@github.com:stratisproject/StratisBitcoinFullNode.git","clone_url":"https://github.com/stratisproject/StratisBitcoinFullNode.git","svn_url":"https://github.com/stratisproject/StratisBitcoinFullNode","homepage":"https://stratisplatform.com","size":30485,"stargazers_count":495,"watchers_count":495,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":216,"mirror_url":null,"archived":false,"open_issues_count":105,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":216,"open_issues":105,"watchers":495,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/1513"},"html":{"href":"https://github.com/stratisproject/StratisBitcoinFullNode/pull/1513"},"issue":{"href":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/1513"},"comments":{"href":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/issues/1513/comments"},"review_comments":{"href":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/1513/comments"},"review_comment":{"href":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/pulls/1513/commits"},"statuses":{"href":"https://api.github.com/repos/stratisproject/StratisBitcoinFullNode/statuses/b76c7d2989904e3e33aa2021251becab00a59399"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Aprogiena"}}