aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-07-26 17:24:44 +0800
committerobscuren <geffobscura@gmail.com>2014-07-26 17:24:44 +0800
commit41bd38147c2e5968283facf641b2444c09f53d14 (patch)
tree69353d4174e2a244c48eb1faa37d74077b9495d2
parent92ffc1cc4c7227de93d933181a30c57c5730c41f (diff)
downloadgo-tangerine-41bd38147c2e5968283facf641b2444c09f53d14.tar
go-tangerine-41bd38147c2e5968283facf641b2444c09f53d14.tar.gz
go-tangerine-41bd38147c2e5968283facf641b2444c09f53d14.tar.bz2
go-tangerine-41bd38147c2e5968283facf641b2444c09f53d14.tar.lz
go-tangerine-41bd38147c2e5968283facf641b2444c09f53d14.tar.xz
go-tangerine-41bd38147c2e5968283facf641b2444c09f53d14.tar.zst
go-tangerine-41bd38147c2e5968283facf641b2444c09f53d14.zip
Clean up and util methods
-rw-r--r--ethchain/block.go13
-rw-r--r--ethereum.go13
-rw-r--r--ethutil/bytes.go1
-rw-r--r--ethutil/config.go6
-rw-r--r--ethutil/path.go40
-rw-r--r--ethvm/vm.go5
-rw-r--r--peer.go15
7 files changed, 67 insertions, 26 deletions
diff --git a/ethchain/block.go b/ethchain/block.go
index 437525e35..e00bcb24f 100644
--- a/ethchain/block.go
+++ b/ethchain/block.go
@@ -3,13 +3,14 @@ package ethchain
import (
"bytes"
"fmt"
+ "math/big"
+ _ "strconv"
+ "time"
+
"github.com/ethereum/eth-go/ethcrypto"
"github.com/ethereum/eth-go/ethstate"
"github.com/ethereum/eth-go/ethtrie"
"github.com/ethereum/eth-go/ethutil"
- "math/big"
- _ "strconv"
- "time"
)
type BlockInfo struct {
@@ -63,12 +64,6 @@ type Block struct {
TxSha []byte
}
-// New block takes a raw encoded string
-// XXX DEPRICATED
-func NewBlockFromData(raw []byte) *Block {
- return NewBlockFromBytes(raw)
-}
-
func NewBlockFromBytes(raw []byte) *Block {
block := &Block{}
block.RlpDecode(raw)
diff --git a/ethereum.go b/ethereum.go
index 18c1f8a23..799e9cb39 100644
--- a/ethereum.go
+++ b/ethereum.go
@@ -3,12 +3,6 @@ package eth
import (
"container/list"
"fmt"
- "github.com/ethereum/eth-go/ethchain"
- "github.com/ethereum/eth-go/ethcrypto"
- "github.com/ethereum/eth-go/ethlog"
- "github.com/ethereum/eth-go/ethrpc"
- "github.com/ethereum/eth-go/ethutil"
- "github.com/ethereum/eth-go/ethwire"
"io/ioutil"
"math/rand"
"net"
@@ -18,6 +12,13 @@ import (
"sync"
"sync/atomic"
"time"
+
+ "github.com/ethereum/eth-go/ethchain"
+ "github.com/ethereum/eth-go/ethcrypto"
+ "github.com/ethereum/eth-go/ethlog"
+ "github.com/ethereum/eth-go/ethrpc"
+ "github.com/ethereum/eth-go/ethutil"
+ "github.com/ethereum/eth-go/ethwire"
)
const seedTextFileUri string = "http://www.ethereum.org/servers.poc3.txt"
diff --git a/ethutil/bytes.go b/ethutil/bytes.go
index 34fff7d42..53b8cf645 100644
--- a/ethutil/bytes.go
+++ b/ethutil/bytes.go
@@ -98,6 +98,7 @@ func Bytes2Hex(d []byte) string {
func Hex2Bytes(str string) []byte {
h, _ := hex.DecodeString(str)
+
return h
}
diff --git a/ethutil/config.go b/ethutil/config.go
index 41bece21d..81052318e 100644
--- a/ethutil/config.go
+++ b/ethutil/config.go
@@ -3,8 +3,9 @@ package ethutil
import (
"flag"
"fmt"
- "github.com/rakyll/globalconf"
"os"
+
+ "github.com/rakyll/globalconf"
)
// Config struct
@@ -28,8 +29,7 @@ var Config *ConfigManager
func ReadConfig(ConfigFile string, Datadir string, EnvPrefix string) *ConfigManager {
if Config == nil {
// create ConfigFile if does not exist, otherwise globalconf panic when trying to persist flags
- _, err := os.Stat(ConfigFile)
- if err != nil && os.IsNotExist(err) {
+ if !FileExist(ConfigFile) {
fmt.Printf("config file '%s' doesn't exist, creating it\n", ConfigFile)
os.Create(ConfigFile)
}
diff --git a/ethutil/path.go b/ethutil/path.go
index 97f58ab7e..27022bcfa 100644
--- a/ethutil/path.go
+++ b/ethutil/path.go
@@ -1,6 +1,8 @@
package ethutil
import (
+ "io/ioutil"
+ "os"
"os/user"
"strings"
)
@@ -18,3 +20,41 @@ func ExpandHomePath(p string) (path string) {
return
}
+
+func FileExist(filePath string) bool {
+ _, err := os.Stat(filePath)
+ if err != nil && os.IsNotExist(err) {
+ return false
+ }
+
+ return true
+}
+
+func ReadAllFile(filePath string) (string, error) {
+ file, err := os.Open(filePath)
+ if err != nil {
+ return "", err
+ }
+
+ data, err := ioutil.ReadAll(file)
+ if err != nil {
+ return "", err
+ }
+
+ return string(data), nil
+}
+
+func WriteFile(filePath string, content []byte) error {
+ fh, err := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, os.ModePerm)
+ if err != nil {
+ return err
+ }
+ defer fh.Close()
+
+ _, err = fh.Write(content)
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
diff --git a/ethvm/vm.go b/ethvm/vm.go
index a93b56e60..e0a9d831b 100644
--- a/ethvm/vm.go
+++ b/ethvm/vm.go
@@ -2,11 +2,12 @@ package ethvm
import (
"fmt"
+ "math"
+ "math/big"
+
"github.com/ethereum/eth-go/ethcrypto"
"github.com/ethereum/eth-go/ethstate"
"github.com/ethereum/eth-go/ethutil"
- "math"
- "math/big"
)
type Debugger interface {
diff --git a/peer.go b/peer.go
index ffba695ca..691a2f575 100644
--- a/peer.go
+++ b/peer.go
@@ -4,15 +4,16 @@ import (
"bytes"
"container/list"
"fmt"
- "github.com/ethereum/eth-go/ethchain"
- "github.com/ethereum/eth-go/ethlog"
- "github.com/ethereum/eth-go/ethutil"
- "github.com/ethereum/eth-go/ethwire"
"net"
"strconv"
"strings"
"sync/atomic"
"time"
+
+ "github.com/ethereum/eth-go/ethchain"
+ "github.com/ethereum/eth-go/ethlog"
+ "github.com/ethereum/eth-go/ethutil"
+ "github.com/ethereum/eth-go/ethwire"
)
var peerlogger = ethlog.NewLogger("PEER")
@@ -197,10 +198,12 @@ func NewOutboundPeer(addr string, ethereum *Ethereum, caps Caps) *Peer {
}
func (self *Peer) Connect(addr string) (conn net.Conn, err error) {
- for attempts := 0; attempts < 5; attempts++ {
+ const maxTries = 3
+ for attempts := 0; attempts < maxTries; attempts++ {
conn, err = net.DialTimeout("tcp", addr, 10*time.Second)
if err != nil {
- peerlogger.Debugf("Peer connection failed. Retrying (%d/5)\n", attempts+1)
+ //peerlogger.Debugf("Peer connection failed. Retrying (%d/%d) (%s)\n", attempts+1, maxTries, addr)
+ time.Sleep(time.Duration(attempts*20) * time.Second)
continue
}