文档章节

BCOS无法组网问题

西夏一品堂
 西夏一品堂
发布于 2017/11/04 11:47
字数 1833
阅读 95
收藏 0

第一个节点根目录:/nodes/bc01

mkdir -p /nodes/bc01/data
mkdir -p /nodes/bc01/log
mkdir -p /nodes/bc01/keystore
bcoseth --gennetworkrlp /nodes/bc01/data/network.rlp

cat /nodes/bc01/data/network.rlp.pub
结果:

a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041

第一个节点的config.json:

 

{
        "sealEngine": "PBFT",
        "systemproxyaddress":"0x0",
        "listenip":"127.0.0.1",
        "rpcport":      "8545",
        "p2pport":      "30303",
        "wallet":"/nodes/bc01/keys.info",
        "keystoredir":"/nodes/bc01/keystore/",
        "datadir":"/nodes/bc01/data/",
        "vm":"interpreter",
        "networkid":"100",
        "logverbosity":"4",
        "coverlog":"OFF",
        "eventlog":"ON",
        "logconf":"/nodes/bc01/log.conf",
        "params": {
             "accountStartNonce": "0x0",
             "maximumExtraDataSize": "0x0",
             "tieBreakingGas": false,
             "blockReward": "0x0",
             "networkID": "0x0"
        },
        "NodeextraInfo":[
        {
            "Nodeid":"a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041", 
            "Nodedesc": "test1",
            "Agencyinfo": "test1",
            "Peerip": "127.0.0.1",
            "Identitytype": 1,
            "Port":30303,
            "Idx":0
        }
        ]
}

第一个节点的genesis.json:
 

{
     "nonce": "0x0",
     "difficulty": "0x0",
     "mixhash": "0x0",
     "coinbase": "0x0",
     "timestamp": "0x0",
     "parentHash": "0x0",
     "extraData": "0x0",
     "gasLimit": "0x13880000000000",
     "god":"0xbc45a3b978f790b3da82a62b525cee499f451c5e",
     "alloc": {},
     "initMinerNodes":["a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041"]
}

然后,启动第一个节点:
bcoseth --genesis /nodes/bc01/genesis.json --config /nodes/bc01/config.json


看日志,已经成功在出块了。

第一个节点启动成功之后,部署系统合约

cd systemcontractv2
cnpm install
vim config.js
babel-node deploy.js

 

之后,vim node1.json

{
    "id":"a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041",
    "ip":"127.0.0.1",
    "port":30303,
    "category":1,
    "desc":"test1",
    "CAhash":"",
    "agencyinfo":"test1",
    "idx":0
}

添加创世节点入网
babel-node tool.js NodeAction registerNode node1.json

验证
babel-node tool.js NodeAction all

已经成功加入

至此,第一个节点已经完成

-----------------------------------------------------------------------------------------------------------

第二个节点根目录:/nodes/bc02

mkdir -p /nodes/bc02/data
mkdir -p /nodes/bc02/log
mkdir -p /nodes/bc02/keystore
bcoseth --gennetworkrlp /nodes/bc02/data/network.rlp

cat /nodes/bc02/data/network.rlp.pub
结果:

8ed98503886110de3ffe54d219235c57458ab0fb8d552b2957eea898d538ca5fed9da0e5a6e9b77f5bb9aea6623d12b20a770d209bf76d1dc8acb228ea2c778c

第二个节点的config.json:

{
        "sealEngine": "PBFT",
        "systemproxyaddress":"0x0",
        "listenip":"127.0.0.1",
        "rpcport":      "8546",
        "p2pport":      "30304",
        "wallet":"/nodes/bc02/keys.info",
        "keystoredir":"/nodes/bc02/keystore/",
        "datadir":"/nodes/bc02/data/",
        "vm":"interpreter",
        "networkid":"100",
        "logverbosity":"4",
        "coverlog":"OFF",
        "eventlog":"ON",
        "logconf":"/nodes/bc02/log.conf",
        "params": {
             "accountStartNonce": "0x0",
             "maximumExtraDataSize": "0x0",
             "tieBreakingGas": false,
             "blockReward": "0x0",
             "networkID": "0x0"
        },
        "NodeextraInfo":[
        {
            "Nodeid":"a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041", 
            "Nodedesc": "test1",
            "Agencyinfo": "test1",
            "Peerip": "127.0.0.1",
            "Identitytype": 1,
            "Port":30303,
            "Idx":0
        },
        {
            "Nodeid":"8ed98503886110de3ffe54d219235c57458ab0fb8d552b2957eea898d538ca5fed9da0e5a6e9b77f5bb9aea6623d12b20a770d209bf76d1dc8acb228ea2c778c", 
            "Nodedesc": "test2",
            "Agencyinfo": "test2",
            "Peerip": "127.0.0.1",
            "Identitytype": 1,
            "Port":30304,
            "Idx":1
        }
        ]
}

genesis.json文件和第一个节点文件一样(直接从第一个节点拷贝过来)

然后,启动第二个节点:
bcoseth --genesis /nodes/bc02/genesis.json --config /nodes/bc02/config.json

 

启动之后,第二个节点出不了快了。但是端口已经启动了

error_log_2017110411.log

fatal_log_2017110411.log

里面没有错误信息

错误日志如下:

info_log_2017110411.log 内容如下:

INFO|2017-11-04 11:03:54|CAVerify is false.

INFO|2017-11-04 11:03:54|⧎ ✘|⧎ ✘  11:03:54 AM.528|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Error sending: Broken pipe
INFO|2017-11-04 11:03:54|⧎ ✘|⧎ ✘  11:03:54 AM.528|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Closing tcp://0.0.0.0:0 ( Low-level TCP communication error. )
INFO|2017-11-04 11:03:54|⧎ ✘|⧎ ✘  11:03:54 AM.528|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  EthereumPeer::~EthereumPeer
INFO|2017-11-04 11:03:59|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Report: blk=0,hash=4c5840d0…,idx=0, Next: blk=1
INFO|2017-11-04 11:03:59|--BLOCKSTAT--|--BLOCKSTAT--  11:03:59 AM.461|eth  BLOCK_TIMESTAMP_STAT:[ ][ 1 ][ 1509764639461 ][ commitToSeal ]
INFO|2017-11-04 11:03:59|+++++++++++++++++++++++++++ Generating seal on b99d2abb…#1tx:0
INFO|2017-11-04 11:03:59|--BLOCKSTAT--|--BLOCKSTAT--  11:03:59 AM.462|eth  BLOCK_TIMESTAMP_STAT:[ b99d2abbf9170e1a0741c06a0277374b1b46903baeb3cbe61ba72e52ecb70ea7 ][ 1 ][ 1509764639462 ][ broadcastPrepareReq ]
INFO|2017-11-04 11:04:24|⧎ ✘|⧎ ✘  11:04:24 AM.417|p2p  Host::keepAlivePeers erase ##a14e8837…
INFO|2017-11-04 11:04:52|collectGarbage timecost(ms)=0.005
INFO|2017-11-04 11:04:54| getSelfSignData hash is 1cd413536c891c6df7f6cd7ed9ab3be195563938d17fa66f6cb0c52363d90c9e|nodeid is 8ed98503886110de3ffe54d219235c57458ab0fb8d552b2957eea898d538ca5fed9da0e5a6e9b77f5bb9aea6623d12b20a770d209bf76d1dc8acb228ea2c778c|agenceinfo is test2|ip is 127.0.0.1

INFO|2017-11-04 11:04:54|ConstructHandShakeRLP, pub256:,nodeSign:ecd83707f22a0fc6192b7d6fe53bbf2187b63585f1aff706d33ddfa995c2b5db5e557ab2c5e9215457fa846614616899a6212abf591fb489e073761917a28e7a00,nodeId:8ed98503886110de3ffe54d219235c57458ab0fb8d552b2957eea898d538ca5fed9da0e5a6e9b77f5bb9aea6623d12b20a770d209bf76d1dc8acb228ea2c778c

INFO|2017-11-04 11:04:54|SerializeHandShakeRLP,pub:a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041,signature:6bca1de3f20a17c1e0916932001c4a3c1704f1a3395ba05eca7f7bfcbb1ac8e406b5b057f2b71c50fa8d4d2dce2a9fe538736a1fe4721a37e51bdfe26eac433200,caPub256:

INFO|2017-11-04 11:04:54| checkNodeConnInfo nodeid is a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041| sign is 6bca1de3f20a17c1e0916932001c4a3c1704f1a3395ba05eca7f7bfcbb1ac8e406b5b057f2b71c50fa8d4d2dce2a9fe538736a1fe4721a37e51bdfe26eac433200

INFO|2017-11-04 11:04:54|checkNodeConnInfo hash is 0a41de2a2cfe038ac409bbec4009d6dc53067f424ede00cee6901a74ba30f54e|a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041|test1|127.0.0.1

INFO|2017-11-04 11:04:54|CAVerify is false.

INFO|2017-11-04 11:04:54|⧎ ✘|⧎ ✘  11:04:54 AM.612|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Error sending: Broken pipe
INFO|2017-11-04 11:04:54|⧎ ✘|⧎ ✘  11:04:54 AM.613|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Closing tcp://0.0.0.0:0 ( Low-level TCP communication error. )
INFO|2017-11-04 11:04:54|⧎ ✘|⧎ ✘  11:04:54 AM.614|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  EthereumPeer::~EthereumPeer
INFO|2017-11-04 11:05:24|⧎ ✘|⧎ ✘  11:05:24 AM.491|p2p  Host::keepAlivePeers erase ##a14e8837…
INFO|2017-11-04 11:05:52|collectGarbage timecost(ms)=0.001

warn_log_2017110411.log

WARNING|2017-11-04 11:03:54|New session for capabilityeth; idOffset:16; protocolID:0
WARNING|2017-11-04 11:03:54|New session for capabilitypbft; idOffset:35; protocolID:0
WARNING|2017-11-04 11:03:54|New session for capabilityeth; idOffset:16; protocolID:0
WARNING|2017-11-04 11:03:54|New session for capabilitypbft; idOffset:35; protocolID:0
WARNING|2017-11-04 11:04:54|New session for capabilityeth; idOffset:16; protocolID:0
WARNING|2017-11-04 11:04:54|New session for capabilitypbft; idOffset:35; protocolID:0
WARNING|2017-11-04 11:05:54|New session for capabilityeth; idOffset:16; protocolID:0
WARNING|2017-11-04 11:05:54|New session for capabilitypbft; idOffset:35; protocolID:0
WARNING|2017-11-04 11:06:54|New session for capabilityeth; idOffset:16; protocolID:0
WARNING|2017-11-04 11:06:54|New session for capabilitypbft; idOffset:35; protocolID:0
WARNING|2017-11-04 11:07:54|New session for capabilityeth; idOffset:16; protocolID:0
WARNING|2017-11-04 11:07:54|New session for capabilitypbft; idOffset:35; protocolID:0
WARNING|2017-11-04 11:08:54|New session for capabilityeth; idOffset:16; protocolID:0
WARNING|2017-11-04 11:08:54|New session for capabilitypbft; idOffset:35; protocolID:0
WARNING|2017-11-04 11:09:54|New session for capabilityeth; idOffset:16; protocolID:0
WARNING|2017-11-04 11:09:54|New session for capabilitypbft; idOffset:35; protocolID:0
WARNING|2017-11-04 11:10:54|New session for capabilityeth; idOffset:16; protocolID:0
WARNING|2017-11-04 11:10:54|New session for capabilitypbft; idOffset:35; protocolID:0
WARNING|2017-11-04 11:11:54|New session for capabilityeth; idOffset:16; protocolID:0

log_2017110411.log

INFO|2017-11-04 11:10:54|CAVerify is false.

WARNING|2017-11-04 11:10:54|New session for capabilityeth; idOffset:16; protocolID:0
TRACE|2017-11-04 11:10:54|EthereumHost::newPeerCapability totalDifficulty=0,number=0
WARNING|2017-11-04 11:10:54|New session for capabilitypbft; idOffset:35; protocolID:0
DEBUG|2017-11-04 11:10:54|⧎ ◌|⧎ ◌  11:10:54 AM.878|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Disconnect (reason: Unexpected identity given. )
INFO|2017-11-04 11:10:54|⧎ ✘|⧎ ✘  11:10:54 AM.878|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Closing tcp://127.0.0.1:30303 ( Disconnect was requested. )
DEBUG|2017-11-04 11:10:54|⧎ ◌|⧎ ◌  11:10:54 AM.878|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Closing peer session :-(
TRACE|2017-11-04 11:10:54|Peer aborting while being asked for State
INFO|2017-11-04 11:10:54|⧎ ✘|⧎ ✘  11:10:54 AM.878|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  EthereumPeer::~EthereumPeer
TRACE|2017-11-04 11:10:54|onPeerAborting call continueSync
TRACE|2017-11-04 11:11:09|Since 2017-11-04 03:10:54.824Z (15): 15ticks
INFO|2017-11-04 11:11:24|⧎ ✘|⧎ ✘  11:11:24 AM.910|p2p  Host::keepAlivePeers erase ##a14e8837…
TRACE|2017-11-04 11:11:25|Since 2017-11-04 03:11:09.911Z (15): 15ticks
TRACE|2017-11-04 11:11:40|Since 2017-11-04 03:11:25.0000Z (15): 15ticks
INFO|2017-11-04 11:11:52|collectGarbage timecost(ms)=0.001
TRACE|2017-11-04 11:11:54|NodeConnParamsManager::connNodeenode://a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041@127.0.0.1:30303 Valid=1
TRACE|2017-11-04 11:11:54|NodeConnParamsManager::connNode startenode://a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041@127.0.0.1:30303 Valid=1
TRACE|2017-11-04 11:11:54|WebThreeDirect::addPeer 
TRACE|2017-11-04 11:11:54|Host::addPeerenode://a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041@127.0.0.1:30303
TRACE|2017-11-04 11:11:54|Host::addPeer Required
TRACE|2017-11-04 11:11:54|Host::requirePeera14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041
TRACE|2017-11-04 11:11:54|NodeTable::addNode a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041,1
TRACE|2017-11-04 11:11:54|NodeTable::noteActiveNode a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041,127.0.0.1:30303
INFO|2017-11-04 11:11:54| getSelfSignData hash is 1cd413536c891c6df7f6cd7ed9ab3be195563938d17fa66f6cb0c52363d90c9e|nodeid is 8ed98503886110de3ffe54d219235c57458ab0fb8d552b2957eea898d538ca5fed9da0e5a6e9b77f5bb9aea6623d12b20a770d209bf76d1dc8acb228ea2c778c|agenceinfo is test2|ip is 127.0.0.1

INFO|2017-11-04 11:11:54|ConstructHandShakeRLP, pub256:,nodeSign:ecd83707f22a0fc6192b7d6fe53bbf2187b63585f1aff706d33ddfa995c2b5db5e557ab2c5e9215457fa846614616899a6212abf591fb489e073761917a28e7a00,nodeId:8ed98503886110de3ffe54d219235c57458ab0fb8d552b2957eea898d538ca5fed9da0e5a6e9b77f5bb9aea6623d12b20a770d209bf76d1dc8acb228ea2c778c

DEBUG|2017-11-04 11:11:54|⧎ ◌|⧎ ◌  11:11:54 AM.943|p2p  Hello: eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/ V[ 4 ] ##a14e8837… (eth,63)(pbft,63) 30303
INFO|2017-11-04 11:11:54|SerializeHandShakeRLP,pub:a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041,signature:6bca1de3f20a17c1e0916932001c4a3c1704f1a3395ba05eca7f7bfcbb1ac8e406b5b057f2b71c50fa8d4d2dce2a9fe538736a1fe4721a37e51bdfe26eac433200,caPub256:

INFO|2017-11-04 11:11:54| checkNodeConnInfo nodeid is a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041| sign is 6bca1de3f20a17c1e0916932001c4a3c1704f1a3395ba05eca7f7bfcbb1ac8e406b5b057f2b71c50fa8d4d2dce2a9fe538736a1fe4721a37e51bdfe26eac433200

INFO|2017-11-04 11:11:54|checkNodeConnInfo hash is 0a41de2a2cfe038ac409bbec4009d6dc53067f424ede00cee6901a74ba30f54e|a14e8837a86b42bbdb7edd672d06af4850232f1b8f5a988043ed71cb01f113549221b8c9971f5b183d46645469e18d174696f96b4f38c01b8076a49eb3972041|test1|127.0.0.1

INFO|2017-11-04 11:11:54|CAVerify is false.

WARNING|2017-11-04 11:11:54|New session for capabilityeth; idOffset:16; protocolID:0
TRACE|2017-11-04 11:11:54|EthereumHost::newPeerCapability totalDifficulty=0,number=0
WARNING|2017-11-04 11:11:54|New session for capabilitypbft; idOffset:35; protocolID:0
INFO|2017-11-04 11:11:54|⧎ ✘|⧎ ✘  11:11:54 AM.945|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Error sending: Broken pipe
INFO|2017-11-04 11:11:54|⧎ ✘|⧎ ✘  11:11:54 AM.945|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Closing tcp://0.0.0.0:0 ( Low-level TCP communication error. )
DEBUG|2017-11-04 11:11:54|⧎ ◌|⧎ ◌  11:11:54 AM.945|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Disconnect (reason: Unexpected identity given. )
DEBUG|2017-11-04 11:11:54|⧎ ◌|⧎ ◌  11:11:54 AM.945|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  Closing peer session :-(
TRACE|2017-11-04 11:11:54|Peer aborting while being asked for State
INFO|2017-11-04 11:11:54|⧎ ✘|⧎ ✘  11:11:54 AM.945|p2p|a14e8837…|eth/v1.3.0/Linux/g++/Interpreter/RelWithDebInfo/c6bd28ad*/  EthereumPeer::~EthereumPeer
TRACE|2017-11-04 11:11:54|onPeerAborting call continueSync
TRACE|2017-11-04 11:11:55|Since 2017-11-04 03:11:40.091Z (15): 15ticks
TRACE|2017-11-04 11:12:10|Since 2017-11-04 03:11:55.183Z (15): 15ticks
INFO|2017-11-04 11:12:24|⧎ ✘|⧎ ✘  11:12:24 AM.979|p2p  Host::keepAlivePeers erase ##a14e8837…

 

© 著作权归作者所有

西夏一品堂

西夏一品堂

粉丝 29
博文 5
码字总数 2141
作品 0
广州
高级程序员
私信 提问
加载中

评论(1)

g
gxl_17125205
这个问题我也遇到了,请问你解决了吗
FISCO BCOS 2.0 发布:新增群组架构克服吞吐瓶颈

3月20日,FISCO BCOS开源社区正式对外发布FISCO BCOS的2.0版,该版本在可扩展性、性能、易用性、隐私隔离等方面均取得突破性进展,其新增的群组架构方案,可以让企业间像拉微信群一样快速组链...

Dynjjs
03/19
648
1
微众银行解密区块链开源社区建设:没有秘密 唯有坚持

作者:互链脉搏·元尚 “相信这个方向是对的,然后要有恒心和耐心。”当互链脉搏问及FISCO BCOS开源社区成功的秘密时,主持FISCO BCOS区块链底层平台的设计,同时也是微众银行区块链首席架构...

互链Professor
08/06
0
0
联盟链FISCO BCOS v2.0.0-rc3 发布

FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造。开源工作组成员包括博彦科技、华为、深证通、神州数码、四方精创、腾讯、微...

FISCO-BCOS
07/08
0
0
FISCO BCOS v2.0.0-rc2 发布,新增并行计算模型

FISCO BCOS 开源社区发布了 FISCO BCOS 的 2.0.0-rc2 版本,FISCO BCOS 是金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组,由腾讯、华为、微众银行、博彦科技、深证通、神州数码、...

xplanet
05/15
462
0
起“底”联盟链:FISCO BCOS 与 Fabric之较

在国家政策的鼓励下,区块链技术的研发与推广正在不断升温,技术、标准、平台、框架都在持续发展,这其中,既有来自国外的布道者,也有源自国内的探索者。做为区块链三大部署形态之一的联盟链...

码云Gitee
2018/09/27
194
1

没有更多内容

加载失败,请刷新页面

加载更多

浅谈FlyWeight享元模式

一、前言 享元(FlyWeight)模式顾名思义,即是轻量级,原因就是享元,共享元素,这里的元素指的是对象。如何共享对象,那就是在检测对象产生的时候,如果产生的是同一个对象,那么直接使用已...

青衣霓裳
8分钟前
2
0
Python学习10.14:Python set集合详解

Python 中的集合,和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同。 从形式上看,和字典类似,Python 集合会将所有元素放在一对大括号 {} 中,相邻元素...

太空堡垒185
8分钟前
5
0
好程序员大数据教程分享Scala系列之文件以及正则表达式

好程序员大数据教程分享Scala系列之文件以及正则表达式 1 读取行 导入scala.io.Source后,即可引用Source中的方法读取文件信息。 import scala.io.Source object FileDemo extends App{ val ...

好程序员官网
9分钟前
2
0
75.nosql memcached与安装及查看状态

21.1 nosql介绍 21.2 memrcached介绍 21.3 安装memcached 21.4 查看memcachedq状态 21.1 nosql介绍 什么是NoSQL: 1.非关系型数据库就是NoSQL,关系型数据库代表MySQL 也是一种数据库,来存储...

oschina130111
11分钟前
3
0
玩转阿里云 Terraform(二):Terraform 的几个关键概念

上一篇《玩转阿里云Terraform(一):Terraform 是什么》介绍了 Terraform 的基本定义和特点之后,本文将着重介绍几个Terraform中的关键概念。 Terraform 关键概念 在使用Terraform的过程中,通...

阿里云官方博客
11分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部