{"action":"created","comment":{"url":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/comments/58423121","id":58423121,"diff_hunk":"@@ -0,0 +1,164 @@\n+# Amendments #\n+\n+The Amendments system provides a means of introducing new features to the decentralized Ripple consensus network without causing disruptions. The amendments system works by utilizing the core consensus process of the network to approve any changes by showing continuous support before those changes go into effect. An amendment normally requires **80% support for two weeks** before it can apply.\n+\n+When an Amendment has been enabled, it applies permanently to all ledger versions after the one that included it. You cannot disable an Amendment, unless you introduce a new Amendment to do so.\n+\n+\n+## Background ##\n+\n+Any changes to transaction processing could cause servers to build a different ledger with the same set of transactions. If only a portion of validators have upgraded to a new version of the software, this could cause anything from minor inconveniences (a minority of servers spend more time and bandwidth fetching the actual consensus ledger because they cannot rely on their own) to serious problems: consensus might be unable to validate new ledger versions because servers are unable to reach a consensus who agree to the exact same result.\n+\n+Amendments provide solution to this problem, so that new features can be enabled only when enough validators support those features.\n+\n+Users and businesses who rely on the Ripple Consensus Ledger can also use Amendments to provide advance notice of changes in transaction processing that might affect their business. However, API changes that do not impact transaction processing or [the consensus process](https://ripple.com/knowledge_center/the-ripple-ledger-consensus-process/) do not require Amendments.\n+\n+\n+## Amendment Process ##\n+\n+An amendment is a fully-functional feature or change, ready to apply when a consensus of servers can handle it. A `rippled` server that wants to use an amendment has business logic for two modes: without the amendment (previous behavior) and with the amendment (new behavior). Every amendment has a unique identifying hex value and a short name. The short name is for human use, and does not affect the status of the amendment.","path":"content/concept-amendments.md","position":19,"original_position":19,"commit_id":"2045bc55f555b20a59c46cee4e565f68ef9bff7e","original_commit_id":"2045bc55f555b20a59c46cee4e565f68ef9bff7e","user":{"login":"ryangyoung","id":8494827,"avatar_url":"https://avatars.githubusercontent.com/u/8494827?v=3","gravatar_id":"","url":"https://api.github.com/users/ryangyoung","html_url":"https://github.com/ryangyoung","followers_url":"https://api.github.com/users/ryangyoung/followers","following_url":"https://api.github.com/users/ryangyoung/following{/other_user}","gists_url":"https://api.github.com/users/ryangyoung/gists{/gist_id}","starred_url":"https://api.github.com/users/ryangyoung/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryangyoung/subscriptions","organizations_url":"https://api.github.com/users/ryangyoung/orgs","repos_url":"https://api.github.com/users/ryangyoung/repos","events_url":"https://api.github.com/users/ryangyoung/events{/privacy}","received_events_url":"https://api.github.com/users/ryangyoung/received_events","type":"User","site_admin":false},"body":"\"...ready to apply when a consensus of servers can handle it\":\r\n- What is a \"consensus\" of servers? \r\n- Is it strictly when the servers can handle it, or when they agree to the amendment? I assume that being able to handle it would be part of their decision whether to support it. \r\n\r\nThe part about a business using an amendment for business logic seems to belong in some other section, perhaps about uses of amendments. As is, it seems like a non-sequitur in this paragraph. \r\n\r\nI'm also confused by the last phrase--why would any kind of name affect the status of the amendment? ","created_at":"2016-04-04T18:25:02Z","updated_at":"2016-04-04T18:25:02Z","html_url":"https://github.com/ripple/ripple-dev-portal/pull/174#discussion_r58423121","pull_request_url":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/174","_links":{"self":{"href":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/comments/58423121"},"html":{"href":"https://github.com/ripple/ripple-dev-portal/pull/174#discussion_r58423121"},"pull_request":{"href":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/174"}}},"pull_request":{"url":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/174","id":64404152,"html_url":"https://github.com/ripple/ripple-dev-portal/pull/174","diff_url":"https://github.com/ripple/ripple-dev-portal/pull/174.diff","patch_url":"https://github.com/ripple/ripple-dev-portal/pull/174.patch","issue_url":"https://api.github.com/repos/ripple/ripple-dev-portal/issues/174","number":174,"state":"open","locked":false,"title":"[Do not merge yet] Simple Multi-Sign Documentation","user":{"login":"mDuo13","id":7515597,"avatar_url":"https://avatars.githubusercontent.com/u/7515597?v=3","gravatar_id":"","url":"https://api.github.com/users/mDuo13","html_url":"https://github.com/mDuo13","followers_url":"https://api.github.com/users/mDuo13/followers","following_url":"https://api.github.com/users/mDuo13/following{/other_user}","gists_url":"https://api.github.com/users/mDuo13/gists{/gist_id}","starred_url":"https://api.github.com/users/mDuo13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mDuo13/subscriptions","organizations_url":"https://api.github.com/users/mDuo13/orgs","repos_url":"https://api.github.com/users/mDuo13/repos","events_url":"https://api.github.com/users/mDuo13/events{/privacy}","received_events_url":"https://api.github.com/users/mDuo13/received_events","type":"User","site_admin":false},"body":"placeholder PR for feedback","created_at":"2016-03-29T02:09:20Z","updated_at":"2016-04-04T18:25:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"858eb1d844eb8e34869a0d6cae07584149e4ed17","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/174/commits","review_comments_url":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/174/comments","review_comment_url":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ripple/ripple-dev-portal/issues/174/comments","statuses_url":"https://api.github.com/repos/ripple/ripple-dev-portal/statuses/2045bc55f555b20a59c46cee4e565f68ef9bff7e","head":{"label":"mDuo13:simplesigning","ref":"simplesigning","sha":"2045bc55f555b20a59c46cee4e565f68ef9bff7e","user":{"login":"mDuo13","id":7515597,"avatar_url":"https://avatars.githubusercontent.com/u/7515597?v=3","gravatar_id":"","url":"https://api.github.com/users/mDuo13","html_url":"https://github.com/mDuo13","followers_url":"https://api.github.com/users/mDuo13/followers","following_url":"https://api.github.com/users/mDuo13/following{/other_user}","gists_url":"https://api.github.com/users/mDuo13/gists{/gist_id}","starred_url":"https://api.github.com/users/mDuo13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mDuo13/subscriptions","organizations_url":"https://api.github.com/users/mDuo13/orgs","repos_url":"https://api.github.com/users/mDuo13/repos","events_url":"https://api.github.com/users/mDuo13/events{/privacy}","received_events_url":"https://api.github.com/users/mDuo13/received_events","type":"User","site_admin":false},"repo":{"id":19550849,"name":"ripple-dev-portal","full_name":"mDuo13/ripple-dev-portal","owner":{"login":"mDuo13","id":7515597,"avatar_url":"https://avatars.githubusercontent.com/u/7515597?v=3","gravatar_id":"","url":"https://api.github.com/users/mDuo13","html_url":"https://github.com/mDuo13","followers_url":"https://api.github.com/users/mDuo13/followers","following_url":"https://api.github.com/users/mDuo13/following{/other_user}","gists_url":"https://api.github.com/users/mDuo13/gists{/gist_id}","starred_url":"https://api.github.com/users/mDuo13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mDuo13/subscriptions","organizations_url":"https://api.github.com/users/mDuo13/orgs","repos_url":"https://api.github.com/users/mDuo13/repos","events_url":"https://api.github.com/users/mDuo13/events{/privacy}","received_events_url":"https://api.github.com/users/mDuo13/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mDuo13/ripple-dev-portal","description":"Ripple developer portal with documentation and examples","fork":true,"url":"https://api.github.com/repos/mDuo13/ripple-dev-portal","forks_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/forks","keys_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/teams","hooks_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/hooks","issue_events_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/issues/events{/number}","events_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/events","assignees_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/assignees{/user}","branches_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/branches{/branch}","tags_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/tags","blobs_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/statuses/{sha}","languages_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/languages","stargazers_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/stargazers","contributors_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/contributors","subscribers_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/subscribers","subscription_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/subscription","commits_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/contents/{+path}","compare_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/merges","archive_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/downloads","issues_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/issues{/number}","pulls_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/pulls{/number}","milestones_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/milestones{/number}","notifications_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/labels{/name}","releases_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/releases{/id}","deployments_url":"https://api.github.com/repos/mDuo13/ripple-dev-portal/deployments","created_at":"2014-05-07T21:23:09Z","updated_at":"2016-01-29T23:24:26Z","pushed_at":"2016-04-04T17:20:33Z","git_url":"git://github.com/mDuo13/ripple-dev-portal.git","ssh_url":"git@github.com:mDuo13/ripple-dev-portal.git","clone_url":"https://github.com/mDuo13/ripple-dev-portal.git","svn_url":"https://github.com/mDuo13/ripple-dev-portal","homepage":null,"size":11631,"stargazers_count":1,"watchers_count":1,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":1,"default_branch":"gh-pages"}},"base":{"label":"ripple:master","ref":"master","sha":"7ec702365aa784ac90b73222d5f46231b7dc6503","user":{"login":"ripple","id":3165523,"avatar_url":"https://avatars.githubusercontent.com/u/3165523?v=3","gravatar_id":"","url":"https://api.github.com/users/ripple","html_url":"https://github.com/ripple","followers_url":"https://api.github.com/users/ripple/followers","following_url":"https://api.github.com/users/ripple/following{/other_user}","gists_url":"https://api.github.com/users/ripple/gists{/gist_id}","starred_url":"https://api.github.com/users/ripple/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ripple/subscriptions","organizations_url":"https://api.github.com/users/ripple/orgs","repos_url":"https://api.github.com/users/ripple/repos","events_url":"https://api.github.com/users/ripple/events{/privacy}","received_events_url":"https://api.github.com/users/ripple/received_events","type":"Organization","site_admin":false},"repo":{"id":17273151,"name":"ripple-dev-portal","full_name":"ripple/ripple-dev-portal","owner":{"login":"ripple","id":3165523,"avatar_url":"https://avatars.githubusercontent.com/u/3165523?v=3","gravatar_id":"","url":"https://api.github.com/users/ripple","html_url":"https://github.com/ripple","followers_url":"https://api.github.com/users/ripple/followers","following_url":"https://api.github.com/users/ripple/following{/other_user}","gists_url":"https://api.github.com/users/ripple/gists{/gist_id}","starred_url":"https://api.github.com/users/ripple/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ripple/subscriptions","organizations_url":"https://api.github.com/users/ripple/orgs","repos_url":"https://api.github.com/users/ripple/repos","events_url":"https://api.github.com/users/ripple/events{/privacy}","received_events_url":"https://api.github.com/users/ripple/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ripple/ripple-dev-portal","description":"Ripple developer portal with documentation and examples","fork":false,"url":"https://api.github.com/repos/ripple/ripple-dev-portal","forks_url":"https://api.github.com/repos/ripple/ripple-dev-portal/forks","keys_url":"https://api.github.com/repos/ripple/ripple-dev-portal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ripple/ripple-dev-portal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ripple/ripple-dev-portal/teams","hooks_url":"https://api.github.com/repos/ripple/ripple-dev-portal/hooks","issue_events_url":"https://api.github.com/repos/ripple/ripple-dev-portal/issues/events{/number}","events_url":"https://api.github.com/repos/ripple/ripple-dev-portal/events","assignees_url":"https://api.github.com/repos/ripple/ripple-dev-portal/assignees{/user}","branches_url":"https://api.github.com/repos/ripple/ripple-dev-portal/branches{/branch}","tags_url":"https://api.github.com/repos/ripple/ripple-dev-portal/tags","blobs_url":"https://api.github.com/repos/ripple/ripple-dev-portal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ripple/ripple-dev-portal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ripple/ripple-dev-portal/git/refs{/sha}","trees_url":"https://api.github.com/repos/ripple/ripple-dev-portal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ripple/ripple-dev-portal/statuses/{sha}","languages_url":"https://api.github.com/repos/ripple/ripple-dev-portal/languages","stargazers_url":"https://api.github.com/repos/ripple/ripple-dev-portal/stargazers","contributors_url":"https://api.github.com/repos/ripple/ripple-dev-portal/contributors","subscribers_url":"https://api.github.com/repos/ripple/ripple-dev-portal/subscribers","subscription_url":"https://api.github.com/repos/ripple/ripple-dev-portal/subscription","commits_url":"https://api.github.com/repos/ripple/ripple-dev-portal/commits{/sha}","git_commits_url":"https://api.github.com/repos/ripple/ripple-dev-portal/git/commits{/sha}","comments_url":"https://api.github.com/repos/ripple/ripple-dev-portal/comments{/number}","issue_comment_url":"https://api.github.com/repos/ripple/ripple-dev-portal/issues/comments{/number}","contents_url":"https://api.github.com/repos/ripple/ripple-dev-portal/contents/{+path}","compare_url":"https://api.github.com/repos/ripple/ripple-dev-portal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ripple/ripple-dev-portal/merges","archive_url":"https://api.github.com/repos/ripple/ripple-dev-portal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ripple/ripple-dev-portal/downloads","issues_url":"https://api.github.com/repos/ripple/ripple-dev-portal/issues{/number}","pulls_url":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls{/number}","milestones_url":"https://api.github.com/repos/ripple/ripple-dev-portal/milestones{/number}","notifications_url":"https://api.github.com/repos/ripple/ripple-dev-portal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ripple/ripple-dev-portal/labels{/name}","releases_url":"https://api.github.com/repos/ripple/ripple-dev-portal/releases{/id}","deployments_url":"https://api.github.com/repos/ripple/ripple-dev-portal/deployments","created_at":"2014-02-28T02:47:58Z","updated_at":"2016-03-31T11:11:43Z","pushed_at":"2016-04-04T17:20:34Z","git_url":"git://github.com/ripple/ripple-dev-portal.git","ssh_url":"git@github.com:ripple/ripple-dev-portal.git","clone_url":"https://github.com/ripple/ripple-dev-portal.git","svn_url":"https://github.com/ripple/ripple-dev-portal","homepage":null,"size":11458,"stargazers_count":39,"watchers_count":39,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":39,"mirror_url":null,"open_issues_count":3,"forks":39,"open_issues":3,"watchers":39,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/174"},"html":{"href":"https://github.com/ripple/ripple-dev-portal/pull/174"},"issue":{"href":"https://api.github.com/repos/ripple/ripple-dev-portal/issues/174"},"comments":{"href":"https://api.github.com/repos/ripple/ripple-dev-portal/issues/174/comments"},"review_comments":{"href":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/174/comments"},"review_comment":{"href":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ripple/ripple-dev-portal/pulls/174/commits"},"statuses":{"href":"https://api.github.com/repos/ripple/ripple-dev-portal/statuses/2045bc55f555b20a59c46cee4e565f68ef9bff7e"}}}}