前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NFT盲盒商城交易系统Dapp开发部署方式

NFT盲盒商城交易系统Dapp开发部署方式

原创
作者头像
T13Z4z77z558
发布2022-08-25 10:50:25
3730
发布2022-08-25 10:50:25
举报
文章被收录于专栏:NFT技术

  在智能合约编写完成后,部署的方式就提到了日程上来,经过简单的测试,总结出来以下几种编译部署方式:

  一、编译

  solc编译

  solc安装方式非常简单,可以直接命令安装也可以使用源码编译。使用方法:

  solcjs--bin name.sol获得bytecode

  solcjs--abi name.sol获得abi

  或者二合一:

  solcjs--bin--abi name.sol

  需要注意的是,如果不增加编译参数,那么因为优化程度不同可能同Remix上编译得到的略有不同。

  remix编译

  将代码直接拷贝到如下网址:

  http://remix.ethereum.org

  在其中编译即可,如果不编译,可能需要在setting中选择一下编译器的版本。编译成功后,点击Details,即可得到相关的参数值。

  node.js编译

  这个在上篇的一键部署中有详细介绍,这里不再赘述。主要是安装node.js,solc,web3.js等相关内容。

  这里有一个需要注意的地方,在老的版本中提供了eth.compile.solidity这个属性,但是在新的版本中,已经去除,编译时会报找不到solidity这个属性。

  二、部署

  1、geth部署

  方法非常简单,把abi,bytecode组成类似Remix上的格式拷贝到命令行中执行即可:

  var testContract=

  web3.eth.contract([{"constant":false,"inputs":[{"name":"a","type":"uint256"}],"name":"multiply","outputs":[{"name":"d","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]);

  var test=testContract.new(

  {

  from:web3.eth.accounts[0],

  data:'0x6080604052348015600f57600080fd5b50609c8061001e6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c6888fa181146043575b600080fd5b348015604e57600080fd5b506058600435606a565b60408051918252519081900360200190f35b600701905600a165627a7a72305820325aa8f93a172a9ced694be2e82a701fb1871a9a30185f1259d5aadc28b44fcc0029',

  gas:'4700000'

  },function(e,contract){

  console.log(e,contract);

  if(typeof contract.address!=='undefined'){

  console.log('Contract mined!address:'+contract.address+'transactionHash:'+contract.transactionHash);

  }

  })

  这里需要注意的是,如果有参数需要将参数数据设置好,并在new的时候儿将其填充到前面,细节看上篇的内容。

  2、remix部署

  这个就更简单了,编译成功后,点击Run,在”Environment”中选择部署的方式,有三种方式:

  javascriptVM:这个类似于使用JS的虚拟机来测试部署。

  injected Web3:使用MetaMask这个插件的选项,发币相当简单,其实就是一个大号的钱包。功能强大,简单易用。它内部可以选择是使用测试网还是主网,一用就明白了。没有什么可讲的。

  Web3 Provider:使用URL地址来决定连接的网络。如果都连接本地网,那么它和第二项没啥区别。

  node.js部署

  使用本地的Web3来部署。

  使用eth_sendTransaction

  重点讲一下这个,这个弄明白了,下面的也就是增加一个签名而已:

  首先部署一个最简单的合约,说明使用流程;其次部署一个发币合约,来说明整个流程,具体步骤见后面代码。

  使用eth_sendRawTransaction

  这个就比较简单了,使用上篇博文的ethereumjs-tx来签名发送即可。需要注意的,这里需要自己处理nonce,方法很多,可以用web3.eth.getTransactionCount(web3.eth.coinbase),也可以使用自己写代码控制的方式。

  4、其它方式

  可以使用一些现成的插件或者软件,比如metamask,etherscan等,还有好多的钱包都自带这个功能。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档