cmd/faucet, cmd/puppeth: drop GitHub support at official request
This commit is contained in:
		
							parent
							
								
									ffc12f63ec
								
							
						
					
					
						commit
						327dcd3622
					
				| @ -437,7 +437,11 @@ func (f *faucet) apiHandler(conn *websocket.Conn) { | ||||
| 		) | ||||
| 		switch { | ||||
| 		case strings.HasPrefix(msg.URL, "https://gist.github.com/"): | ||||
| 			username, avatar, address, err = authGitHub(msg.URL) | ||||
| 			if err = sendError(conn, errors.New("GitHub authentication discontinued at the official request of GitHub")); err != nil { | ||||
| 				log.Warn("Failed to send GitHub deprecation to client", "err", err) | ||||
| 				return | ||||
| 			} | ||||
| 			continue | ||||
| 		case strings.HasPrefix(msg.URL, "https://twitter.com/"): | ||||
| 			username, avatar, address, err = authTwitter(msg.URL) | ||||
| 		case strings.HasPrefix(msg.URL, "https://plus.google.com/"): | ||||
|  | ||||
| @ -80,11 +80,8 @@ | ||||
| 				<div class="row" style="margin-top: 32px;"> | ||||
| 					<div class="col-lg-12"> | ||||
| 						<h3>How does this work?</h3> | ||||
| 						<p>This Ether faucet is running on the {{.Network}} network. To prevent malicious actors from exhausting all available funds or accumulating enough Ether to mount long running spam attacks, requests are tied to certain common 3rd party accounts. Anyone having a GitHub, Twitter, Google+ or Facebook account may request funds within the permitted limits.</p> | ||||
| 						<p>This Ether faucet is running on the {{.Network}} network. To prevent malicious actors from exhausting all available funds or accumulating enough Ether to mount long running spam attacks, requests are tied to common 3rd party social network accounts. Anyone having a Twitter, Google+ or Facebook account may request funds within the permitted limits.</p> | ||||
| 						<dl class="dl-horizontal"> | ||||
| 						  <dt style="width: auto; margin-left: 40px;"><i class="fa fa-github-alt" aria-hidden="true" style="font-size: 36px;"></i></dt> | ||||
| 							<dd style="margin-left: 88px; margin-bottom: 10px;"></i> To request funds via GitHub, create a <a href="https://gist.github.com/" target="_about:blank">gist</a> with your Ethereum address embedded into the content (the file name doesn't matter).<br/>Copy-paste the gists URL into the above input box and fire away!</dd> | ||||
| 
 | ||||
| 							<dt style="width: auto; margin-left: 40px;"><i class="fa fa-twitter" aria-hidden="true" style="font-size: 36px;"></i></dt> | ||||
| 							<dd style="margin-left: 88px; margin-bottom: 10px;"></i> To request funds via Twitter, make a <a href="https://twitter.com/intent/tweet?text=Requesting%20faucet%20funds%20into%200x0000000000000000000000000000000000000000%20on%20the%20%23{{.Network}}%20%23Ethereum%20test%20network." target="_about:blank">tweet</a> with your Ethereum address pasted into the contents (surrounding text doesn't matter).<br/>Copy-paste the <a href="https://support.twitter.com/articles/80586" target="_about:blank">tweets URL</a> into the above input box and fire away!</dd> | ||||
| 
 | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -42,7 +42,7 @@ ADD account.pass /account.pass | ||||
| ENTRYPOINT [ \ | ||||
| 	"faucet", "--genesis", "/genesis.json", "--network", "{{.NetworkID}}", "--bootnodes", "{{.Bootnodes}}", "--ethstats", "{{.Ethstats}}", "--ethport", "{{.EthPort}}",     \ | ||||
| 	"--faucet.name", "{{.FaucetName}}", "--faucet.amount", "{{.FaucetAmount}}", "--faucet.minutes", "{{.FaucetMinutes}}", "--faucet.tiers", "{{.FaucetTiers}}",             \ | ||||
| 	{{if .GitHubUser}}"--github.user", "{{.GitHubUser}}", "--github.token", "{{.GitHubToken}}", {{end}}"--account.json", "/account.json", "--account.pass", "/account.pass" \ | ||||
| 	"--account.json", "/account.json", "--account.pass", "/account.pass"                                                                                                    \ | ||||
| 	{{if .CaptchaToken}}, "--captcha.token", "{{.CaptchaToken}}", "--captcha.secret", "{{.CaptchaSecret}}"{{end}}{{if .NoAuth}}, "--noauth"{{end}}                          \ | ||||
| ]` | ||||
| 
 | ||||
| @ -65,8 +65,6 @@ services: | ||||
|       - FAUCET_AMOUNT={{.FaucetAmount}} | ||||
|       - FAUCET_MINUTES={{.FaucetMinutes}} | ||||
|       - FAUCET_TIERS={{.FaucetTiers}} | ||||
|       - GITHUB_USER={{.GitHubUser}} | ||||
|       - GITHUB_TOKEN={{.GitHubToken}} | ||||
|       - CAPTCHA_TOKEN={{.CaptchaToken}} | ||||
|       - CAPTCHA_SECRET={{.CaptchaSecret}} | ||||
|       - NO_AUTH={{.NoAuth}}{{if .VHost}} | ||||
| @ -94,8 +92,6 @@ func deployFaucet(client *sshClient, network string, bootnodes []string, config | ||||
| 		"Bootnodes":     strings.Join(bootnodes, ","), | ||||
| 		"Ethstats":      config.node.ethstats, | ||||
| 		"EthPort":       config.node.portFull, | ||||
| 		"GitHubUser":    config.githubUser, | ||||
| 		"GitHubToken":   config.githubToken, | ||||
| 		"CaptchaToken":  config.captchaToken, | ||||
| 		"CaptchaSecret": config.captchaSecret, | ||||
| 		"FaucetName":    strings.Title(network), | ||||
| @ -114,8 +110,6 @@ func deployFaucet(client *sshClient, network string, bootnodes []string, config | ||||
| 		"ApiPort":       config.port, | ||||
| 		"EthPort":       config.node.portFull, | ||||
| 		"EthName":       config.node.ethstats[:strings.Index(config.node.ethstats, ":")], | ||||
| 		"GitHubUser":    config.githubUser, | ||||
| 		"GitHubToken":   config.githubToken, | ||||
| 		"CaptchaToken":  config.captchaToken, | ||||
| 		"CaptchaSecret": config.captchaSecret, | ||||
| 		"FaucetAmount":  config.amount, | ||||
| @ -152,8 +146,6 @@ type faucetInfos struct { | ||||
| 	minutes       int | ||||
| 	tiers         int | ||||
| 	noauth        bool | ||||
| 	githubUser    string | ||||
| 	githubToken   string | ||||
| 	captchaToken  string | ||||
| 	captchaSecret string | ||||
| } | ||||
| @ -171,11 +163,6 @@ func (info *faucetInfos) Report() map[string]string { | ||||
| 		"Captha protection":            fmt.Sprintf("%v", info.captchaToken != ""), | ||||
| 		"Ethstats username":            info.node.ethstats, | ||||
| 	} | ||||
| 	if info.githubUser != "" { | ||||
| 		report["GitHub authentication"] = info.githubUser | ||||
| 	} else { | ||||
| 		report["GitHub authentication"] = "disabled, rate-limited" | ||||
| 	} | ||||
| 	if info.noauth { | ||||
| 		report["Debug mode (no auth)"] = "enabled" | ||||
| 	} | ||||
| @ -249,8 +236,6 @@ func checkFaucet(client *sshClient, network string) (*faucetInfos, error) { | ||||
| 		amount:        amount, | ||||
| 		minutes:       minutes, | ||||
| 		tiers:         tiers, | ||||
| 		githubUser:    infos.envvars["GITHUB_USER"], | ||||
| 		githubToken:   infos.envvars["GITHUB_TOKEN"], | ||||
| 		captchaToken:  infos.envvars["CAPTCHA_TOKEN"], | ||||
| 		captchaSecret: infos.envvars["CAPTCHA_SECRET"], | ||||
| 		noauth:        infos.envvars["NO_AUTH"] == "true", | ||||
|  | ||||
| @ -19,7 +19,6 @@ package main | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 
 | ||||
| 	"github.com/ethereum/go-ethereum/accounts/keystore" | ||||
| 	"github.com/ethereum/go-ethereum/log" | ||||
| @ -79,51 +78,6 @@ func (w *wizard) deployFaucet() { | ||||
| 		log.Error("At least one funding tier must be set") | ||||
| 		return | ||||
| 	} | ||||
| 	// Accessing GitHub gists requires API authorization, retrieve it
 | ||||
| 	if infos.githubUser != "" { | ||||
| 		fmt.Println() | ||||
| 		fmt.Printf("Reuse previous (%s) GitHub API authorization (y/n)? (default = yes)\n", infos.githubUser) | ||||
| 		if w.readDefaultString("y") != "y" { | ||||
| 			infos.githubUser, infos.githubToken = "", "" | ||||
| 		} | ||||
| 	} | ||||
| 	if infos.githubUser == "" { | ||||
| 		// No previous authorization (or new one requested)
 | ||||
| 		fmt.Println() | ||||
| 		fmt.Println("Which GitHub user to verify Gists through? (default = none = rate-limited API)") | ||||
| 		infos.githubUser = w.readDefaultString("") | ||||
| 
 | ||||
| 		if infos.githubUser == "" { | ||||
| 			log.Warn("Funding requests via GitHub will be heavily rate-limited") | ||||
| 		} else { | ||||
| 			fmt.Println() | ||||
| 			fmt.Println("What is the GitHub personal access token of the user? (won't be echoed)") | ||||
| 			infos.githubToken = w.readPassword() | ||||
| 
 | ||||
| 			// Do a sanity check query against github to ensure it's valid
 | ||||
| 			req, _ := http.NewRequest("GET", "https://api.github.com/user", nil) | ||||
| 			req.SetBasicAuth(infos.githubUser, infos.githubToken) | ||||
| 			res, err := http.DefaultClient.Do(req) | ||||
| 			if err != nil { | ||||
| 				log.Error("Failed to verify GitHub authentication", "err", err) | ||||
| 				return | ||||
| 			} | ||||
| 			defer res.Body.Close() | ||||
| 
 | ||||
| 			var msg struct { | ||||
| 				Login   string `json:"login"` | ||||
| 				Message string `json:"message"` | ||||
| 			} | ||||
| 			if err = json.NewDecoder(res.Body).Decode(&msg); err != nil { | ||||
| 				log.Error("Failed to decode authorization response", "err", err) | ||||
| 				return | ||||
| 			} | ||||
| 			if msg.Login != infos.githubUser { | ||||
| 				log.Error("GitHub authorization failed", "user", infos.githubUser, "message", msg.Message) | ||||
| 				return | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	// Accessing the reCaptcha service requires API authorizations, request it
 | ||||
| 	if infos.captchaToken != "" { | ||||
| 		fmt.Println() | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user