SolaRoad 索拉迪质押分红系统开发

85 阅读2分钟

  区块链和Web3是紧密相关的概念,【18I链上合约-259l开发系统3365】它们之间存在着相互依存的关系。简单来说,Web3是区块链技术的一个应用,可以被看作是区块链的下一代互联网。

  区块链是一种去中心化的分布式账本技术,它可以被用于安全地记录和存储数据,而不需要信任中介机构。这种技术被广泛应用于数字货币、智能合约、去中心化应用程序(DApps)等领域。

  Web3则是一种更高级的互联网技术,它基于区块链技术,并通过去中心化、自治性和开放性等特点来实现更加安全和自由的网络。Web3的目标是打造一个更加开放、透明和可信的互联网,以及一个更加去中心化、自治和开放的世界。

//通过coinbase部署智能合约 var abi = contract.abi; var bytecode = contract.bytecode;

if (web3.personal.unlockAccount(coinbase, '123')) { console.log(${coinbase} is unlocaked); }else{ console.log(unlock failed, ${coinbase}); }

var gasEstimate = web3.eth.estimateGas({data: '0x' + bytecode}); //gas估计 console.log('gasEstimate = ' + gasEstimate); var MyContract = web3.eth.contract(abi); console.log('deploying contract...'); var myContractReturned = MyContract.new({ from: coinbase, data: '0x'+ bytecode, gas: gasEstimate + 50000 }, function (err, myContract) { if (!err) { if (!myContract.address) { console.log(myContract.transactionHash = ${myContract.transactionHash}); // The hash of the transaction, which deploys the contract // check address on the second call (contract deployed) } else { console.log(myContract.address = ${myContract.address}); // the contract address global.contractAddress = myContract.address; }

} else {
    console.log(err);
}

});

  因此,可以说Web3是区块链技术的一种应用,同时,区块链技术的发展也推动了Web3的进一步发展。在Web3中,去中心化应用程序(DApps)成为了一个重要的概念,这些应用程序通过区块链技术来实现去中心化、自治和安全的数据交换。此外,Web3还包括分布式存储、加密技术、数字身份等领域的发展,这些技术都与区块链技术密切相关。

使用以下命令通过发送交易来调用合约,sendTransaction 方法的前几个参数应该与合约中 multiply 方法的输入参数对应。这种情况下,交易会通过挖矿记录到区块链中:

contract.multiply.sendTransaction(2, 4, {from:eth.accounts[0]}) 在本地运行该方法可直接查看返回结果,不会记录到区块链中,命令如下:

contract.multiply.call(2,4) 8 如果其他节点要调用这个已经部署好的合约,需要知道该合约的地址以及ABI。可以通过发送交易调用,也可以本地调用。我们以本地调用为例。 创建合约实例:

abi = [{ "0xd1ef8ab8f12bde83ebaee1be4183c75f45ab5835643812016a7751173bfb9dc0": [ { "constant": true, "inputs": [ { "name": "a", "type": "uint256" }, { "name": "b", "type": "uint256" } ], "name": "multiply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" } ] }] sample=eth.contract(abi) samplecontract=sample.at("0xd92845cc4bffc1d6a4b6a389933b88880d5ded24") 调用合约

samplecontract.multiply.call(2,4) 8