|
|
@@ -117,7 +117,7 @@ var dashboardContent = `
|
|
|
<br/>
|
|
|
<p>To run an archive node, download <a href="/{{.GethGenesis}}"><code>{{.GethGenesis}}</code></a> and start Geth with:
|
|
|
<pre>geth --datadir=$HOME/.{{.Network}} init {{.GethGenesis}}</pre>
|
|
|
- <pre>geth --networkid={{.NetworkID}} --datadir=$HOME/.{{.Network}} --cache=1024 --syncmode=full{{if .Ethstats}} --ethstats='{{.Ethstats}}'{{end}} --bootnodes={{.BootnodesFullFlat}}</pre>
|
|
|
+ <pre>geth --networkid={{.NetworkID}} --datadir=$HOME/.{{.Network}} --cache=1024 --syncmode=full{{if .Ethstats}} --ethstats='{{.Ethstats}}'{{end}} --bootnodes={{.BootnodesFlat}}</pre>
|
|
|
</p>
|
|
|
<br/>
|
|
|
<p>You can download Geth from <a href="https://geth.ethereum.org/downloads/" target="about:blank">https://geth.ethereum.org/downloads/</a>.</p>
|
|
|
@@ -136,7 +136,7 @@ var dashboardContent = `
|
|
|
<br/>
|
|
|
<p>To run a full node, download <a href="/{{.GethGenesis}}"><code>{{.GethGenesis}}</code></a> and start Geth with:
|
|
|
<pre>geth --datadir=$HOME/.{{.Network}} init {{.GethGenesis}}</pre>
|
|
|
- <pre>geth --networkid={{.NetworkID}} --datadir=$HOME/.{{.Network}} --cache=512{{if .Ethstats}} --ethstats='{{.Ethstats}}'{{end}} --bootnodes={{.BootnodesFullFlat}}</pre>
|
|
|
+ <pre>geth --networkid={{.NetworkID}} --datadir=$HOME/.{{.Network}} --cache=512{{if .Ethstats}} --ethstats='{{.Ethstats}}'{{end}} --bootnodes={{.BootnodesFlat}}</pre>
|
|
|
</p>
|
|
|
<br/>
|
|
|
<p>You can download Geth from <a href="https://geth.ethereum.org/downloads/" target="about:blank">https://geth.ethereum.org/downloads/</a>.</p>
|
|
|
@@ -158,7 +158,7 @@ var dashboardContent = `
|
|
|
<br/>
|
|
|
<p>To run a light node, download <a href="/{{.GethGenesis}}"><code>{{.GethGenesis}}</code></a> and start Geth with:
|
|
|
<pre>geth --datadir=$HOME/.{{.Network}} init {{.GethGenesis}}</pre>
|
|
|
- <pre>geth --networkid={{.NetworkID}} --datadir=$HOME/.{{.Network}} --syncmode=light{{if .Ethstats}} --ethstats='{{.Ethstats}}'{{end}} --bootnodes={{.BootnodesLightFlat}}</pre>
|
|
|
+ <pre>geth --networkid={{.NetworkID}} --datadir=$HOME/.{{.Network}} --syncmode=light{{if .Ethstats}} --ethstats='{{.Ethstats}}'{{end}} --bootnodes={{.BootnodesFlat}}</pre>
|
|
|
</p>
|
|
|
<br/>
|
|
|
<p>You can download Geth from <a href="https://geth.ethereum.org/downloads/" target="about:blank">https://geth.ethereum.org/downloads/</a>.</p>
|
|
|
@@ -177,7 +177,7 @@ var dashboardContent = `
|
|
|
<br/>
|
|
|
<p>To run an embedded node, download <a href="/{{.GethGenesis}}"><code>{{.GethGenesis}}</code></a> and start Geth with:
|
|
|
<pre>geth --datadir=$HOME/.{{.Network}} init {{.GethGenesis}}</pre>
|
|
|
- <pre>geth --networkid={{.NetworkID}} --datadir=$HOME/.{{.Network}} --cache=16 --ethash.cachesinmem=1 --syncmode=light{{if .Ethstats}} --ethstats='{{.Ethstats}}'{{end}} --bootnodes={{.BootnodesLightFlat}}</pre>
|
|
|
+ <pre>geth --networkid={{.NetworkID}} --datadir=$HOME/.{{.Network}} --cache=16 --ethash.cachesinmem=1 --syncmode=light{{if .Ethstats}} --ethstats='{{.Ethstats}}'{{end}} --bootnodes={{.BootnodesFlat}}</pre>
|
|
|
</p>
|
|
|
<br/>
|
|
|
<p>You can download Geth from <a href="https://geth.ethereum.org/downloads/" target="about:blank">https://geth.ethereum.org/downloads/</a>.</p>
|
|
|
@@ -208,7 +208,7 @@ var dashboardContent = `
|
|
|
<pre>geth --datadir=$HOME/.{{.Network}} init {{.GethGenesis}}</pre>
|
|
|
</p>
|
|
|
<p>With your local chain initialized, you can start the Ethereum Wallet:
|
|
|
- <pre>ethereumwallet --rpc $HOME/.{{.Network}}/geth.ipc --node-networkid={{.NetworkID}} --node-datadir=$HOME/.{{.Network}}{{if .Ethstats}} --node-ethstats='{{.Ethstats}}'{{end}} --node-bootnodes={{.BootnodesFullFlat}}</pre>
|
|
|
+ <pre>ethereumwallet --rpc $HOME/.{{.Network}}/geth.ipc --node-networkid={{.NetworkID}} --node-datadir=$HOME/.{{.Network}}{{if .Ethstats}} --node-ethstats='{{.Ethstats}}'{{end}} --node-bootnodes={{.BootnodesFlat}}</pre>
|
|
|
<p>
|
|
|
<br/>
|
|
|
<p>You can download the Ethereum Wallet from <a href="https://github.com/ethereum/mist/releases" target="about:blank">https://github.com/ethereum/mist/releases</a>.</p>
|
|
|
@@ -229,7 +229,7 @@ var dashboardContent = `
|
|
|
<pre>geth --datadir=$HOME/.{{.Network}} init {{.GethGenesis}}</pre>
|
|
|
</p>
|
|
|
<p>With your local chain initialized, you can start Mist:
|
|
|
- <pre>mist --rpc $HOME/.{{.Network}}/geth.ipc --node-networkid={{.NetworkID}} --node-datadir=$HOME/.{{.Network}}{{if .Ethstats}} --node-ethstats='{{.Ethstats}}'{{end}} --node-bootnodes={{.BootnodesFullFlat}}</pre>
|
|
|
+ <pre>mist --rpc $HOME/.{{.Network}}/geth.ipc --node-networkid={{.NetworkID}} --node-datadir=$HOME/.{{.Network}}{{if .Ethstats}} --node-ethstats='{{.Ethstats}}'{{end}} --node-bootnodes={{.BootnodesFlat}}</pre>
|
|
|
<p>
|
|
|
<br/>
|
|
|
<p>You can download the Mist browser from <a href="https://github.com/ethereum/mist/releases" target="about:blank">https://github.com/ethereum/mist/releases</a>.</p>
|
|
|
@@ -261,7 +261,7 @@ var dashboardContent = `
|
|
|
<p>Inside your Java code you can now import the geth archive and connect to Ethereum:
|
|
|
<pre>import org.ethereum.geth.*;</pre>
|
|
|
<pre>
|
|
|
-Enodes bootnodes = new Enodes();{{range .BootnodesLight}}
|
|
|
+Enodes bootnodes = new Enodes();{{range .Bootnodes}}
|
|
|
bootnodes.append(new Enode("{{.}}"));{{end}}
|
|
|
|
|
|
NodeConfig config = new NodeConfig();
|
|
|
@@ -294,7 +294,7 @@ node.start();
|
|
|
<pre>
|
|
|
var error: NSError?
|
|
|
|
|
|
-let bootnodes = GethNewEnodesEmpty(){{range .BootnodesLight}}
|
|
|
+let bootnodes = GethNewEnodesEmpty(){{range .Bootnodes}}
|
|
|
bootnodes?.append(GethNewEnode("{{.}}", &error)){{end}}
|
|
|
|
|
|
let config = GethNewNodeConfig()
|
|
|
@@ -595,44 +595,42 @@ func deployDashboard(client *sshClient, network string, conf *config, config *da
|
|
|
statsLogin = ""
|
|
|
}
|
|
|
indexfile := new(bytes.Buffer)
|
|
|
- bootCpp := make([]string, len(conf.bootFull))
|
|
|
- for i, boot := range conf.bootFull {
|
|
|
+ bootCpp := make([]string, len(conf.bootnodes))
|
|
|
+ for i, boot := range conf.bootnodes {
|
|
|
bootCpp[i] = "required:" + strings.TrimPrefix(boot, "enode://")
|
|
|
}
|
|
|
- bootHarmony := make([]string, len(conf.bootFull))
|
|
|
- for i, boot := range conf.bootFull {
|
|
|
+ bootHarmony := make([]string, len(conf.bootnodes))
|
|
|
+ for i, boot := range conf.bootnodes {
|
|
|
bootHarmony[i] = fmt.Sprintf("-Dpeer.active.%d.url=%s", i, boot)
|
|
|
}
|
|
|
- bootPython := make([]string, len(conf.bootFull))
|
|
|
- for i, boot := range conf.bootFull {
|
|
|
+ bootPython := make([]string, len(conf.bootnodes))
|
|
|
+ for i, boot := range conf.bootnodes {
|
|
|
bootPython[i] = "'" + boot + "'"
|
|
|
}
|
|
|
template.Must(template.New("").Parse(dashboardContent)).Execute(indexfile, map[string]interface{}{
|
|
|
- "Network": network,
|
|
|
- "NetworkID": conf.Genesis.Config.ChainId,
|
|
|
- "NetworkTitle": strings.Title(network),
|
|
|
- "EthstatsPage": config.ethstats,
|
|
|
- "ExplorerPage": config.explorer,
|
|
|
- "WalletPage": config.wallet,
|
|
|
- "FaucetPage": config.faucet,
|
|
|
- "GethGenesis": network + ".json",
|
|
|
- "BootnodesFull": conf.bootFull,
|
|
|
- "BootnodesLight": conf.bootLight,
|
|
|
- "BootnodesFullFlat": strings.Join(conf.bootFull, ","),
|
|
|
- "BootnodesLightFlat": strings.Join(conf.bootLight, ","),
|
|
|
- "Ethstats": statsLogin,
|
|
|
- "Ethash": conf.Genesis.Config.Ethash != nil,
|
|
|
- "CppGenesis": network + "-cpp.json",
|
|
|
- "CppBootnodes": strings.Join(bootCpp, " "),
|
|
|
- "HarmonyGenesis": network + "-harmony.json",
|
|
|
- "HarmonyBootnodes": strings.Join(bootHarmony, " "),
|
|
|
- "ParityGenesis": network + "-parity.json",
|
|
|
- "PythonGenesis": network + "-python.json",
|
|
|
- "PythonBootnodes": strings.Join(bootPython, ","),
|
|
|
- "Homestead": conf.Genesis.Config.HomesteadBlock,
|
|
|
- "Tangerine": conf.Genesis.Config.EIP150Block,
|
|
|
- "Spurious": conf.Genesis.Config.EIP155Block,
|
|
|
- "Byzantium": conf.Genesis.Config.ByzantiumBlock,
|
|
|
+ "Network": network,
|
|
|
+ "NetworkID": conf.Genesis.Config.ChainId,
|
|
|
+ "NetworkTitle": strings.Title(network),
|
|
|
+ "EthstatsPage": config.ethstats,
|
|
|
+ "ExplorerPage": config.explorer,
|
|
|
+ "WalletPage": config.wallet,
|
|
|
+ "FaucetPage": config.faucet,
|
|
|
+ "GethGenesis": network + ".json",
|
|
|
+ "Bootnodes": conf.bootnodes,
|
|
|
+ "BootnodesFlat": strings.Join(conf.bootnodes, ","),
|
|
|
+ "Ethstats": statsLogin,
|
|
|
+ "Ethash": conf.Genesis.Config.Ethash != nil,
|
|
|
+ "CppGenesis": network + "-cpp.json",
|
|
|
+ "CppBootnodes": strings.Join(bootCpp, " "),
|
|
|
+ "HarmonyGenesis": network + "-harmony.json",
|
|
|
+ "HarmonyBootnodes": strings.Join(bootHarmony, " "),
|
|
|
+ "ParityGenesis": network + "-parity.json",
|
|
|
+ "PythonGenesis": network + "-python.json",
|
|
|
+ "PythonBootnodes": strings.Join(bootPython, ","),
|
|
|
+ "Homestead": conf.Genesis.Config.HomesteadBlock,
|
|
|
+ "Tangerine": conf.Genesis.Config.EIP150Block,
|
|
|
+ "Spurious": conf.Genesis.Config.EIP155Block,
|
|
|
+ "Byzantium": conf.Genesis.Config.ByzantiumBlock,
|
|
|
})
|
|
|
files[filepath.Join(workdir, "index.html")] = indexfile.Bytes()
|
|
|
|
|
|
@@ -651,7 +649,7 @@ func deployDashboard(client *sshClient, network string, conf *config, config *da
|
|
|
harmonySpecJSON, _ := conf.Genesis.MarshalJSON()
|
|
|
files[filepath.Join(workdir, network+"-harmony.json")] = harmonySpecJSON
|
|
|
|
|
|
- paritySpec, err := newParityChainSpec(network, conf.Genesis, conf.bootFull)
|
|
|
+ paritySpec, err := newParityChainSpec(network, conf.Genesis, conf.bootnodes)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|