区块链开发:(2)创建以太坊私有链

    创建私有链之前先介绍下公有链、私有链、联盟链的区别。
公有链
    公有链是指全世界任何人都可以随时进入到系统中读取数据、发送可确认交易、竞争记账的区块链。公有链通常被认为是“完全去中心化”的,因为没有任何个人或者机构可以控制或篡改其中数据的读写。
    公有链一般会通过代币机制来鼓励参与者竞争记账,来确保数据的安全性。比特币、以太坊都是典型的公有链。
特点
1. 访问门槛低
2. 所有数据默认公开
3. 用户免受开发者的影响

私有链
    私有链是指其写入权限由某个组织和机构控制的区块链,参与节点的资格会被严格限制。由于参与节点是有限和可控的,因此私有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不容易被恶意攻击,并且能做到身份认证等金融行业必需的要求。
    相比中心化数据库,私有链能够防止机构内单节点故意隐瞒或者篡改数据,即使发生错误,也能够迅速发现来源。因此许多大型金融机构在目前更加倾向于使用私有链技术。
特点
1. 交易速度非常之快
2. 给隐私更好的保障
3. 交易成本大幅降低

联盟链
    联盟链是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。
私有链和联盟链之间的设计隐私权限会有不同,联盟链中的权限设计要求往往会更为复杂。
特点
1. 低成本运行和维护
2. 高交易速度及良好的扩展性
3. 联盟维护、 比私有链更具可信度
随着应用场景的需求更复杂,区块链技术变得越来越复杂。但无论是公有链、许可链还是混合链都没有绝对的优劣,往往需要根据不同的应用场景来选择适合的区块链类型。
1.初始化一个创世区块,首先创建一个文件piccgenesis.json,内容如下:
{
    "nonce":"0x0000000000000042",
    "mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
    "difficulty": "0x4000",
    "alloc": {},
    "coinbase":"0x0000000000000000000000000000000000000000",
    "timestamp": "0x00",
    "parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
    "extraData": "0x00000000",
    "gasLimit":"0xffffffff",
    "config": {
        "chainId":666,
        "homesteadBlock":0,
        "eip155Block":0,
        "eip158Bolock":0
    }
}
2.创建创世块
接下来创建目录eth-private,将piccgenesis.json文件放入该目录中,执行
cd eth-private
geth  --datadir "./chain" init piccgenesis.json

创建区块链创世块,当前区块链数据会保持到chain目录下;

区块链开发:(2)创建以太坊私有链_第1张图片

3.启动私有链

执行以下命令启动私有链:

geth --identity "PICCetherum" --rpc --rpccorsdomain "*" --datadir ".\chain" --port "30303"  --rpcapi "db,eth,net,web3" --networkid 95518 console

区块链开发:(2)创建以太坊私有链_第2张图片

4.在私有链中创建账号、挖矿及转账(常用命令)
eth.accounts   区块链账号
personal.newAccount("123456")  创建账号,密码12
eth.getBalance(eth.accounts[0])  取第一个账号比特币个数
personal.unlockAccount(eth.accounts[0])   解锁第一个账号,区块链账号隔一段时间默认会锁定
miner.start(1)  开始挖矿,线程数1
miner.stop()   停止挖矿



你可能感兴趣的:(区块链)