docker pull cita/cita-run:ubuntu-18.04-20180813
或者直接进入容器里面
docker exec -it 29f /bin/bash
然后查看Solidity 版本
solc --version


下载 CITA 源码
从 Github 仓库下载 CITA 的源代码,然后切换到 CITA 的源代码目录
git clone https://github.com/citahub/cita.git
cd cita
git submodule init
git submodule update
./env.sh
然后新建文件
touch SimpleStorage.sol
内容:
pragma solidity ^0.4.24;

contract SimpleStorage {
uint storedData;
event Init(address, uint);
event Set(address, uint);
event Stored(uint);

constructor() public {storedData = 100;emit Init(msg.sender, 100);
}function set(uint x) public {emit Stored(x);storedData = x;emit Set(msg.sender, x);
}function get() public constant returns (uint) {return storedData;
}

}
然后
获得合约的相关信息
使用 solc 命令得到一些部署和调用需要的信息:

字节码

部署合约需要字节码信息。

$ solc SimpleStorage.sol --bin
输出:

======= SimpleStorage.sol:SimpleStorage =======
Binary:
608060405234801561001057600080fd5b5060df8061001f6000396000f3006080604052600436106049576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360fe47b114604e5780636d4ce63c146078575b600080fd5b348015605957600080fd5b5060766004803603810190808035906020019092919050505060a0565b005b348015608357600080fd5b50608a60aa565b6040518082815260200191505060405180910390f35b8060008190555050565b600080549050905600a165627a7a723058205aed214856a5c433292a354261c9eb88eed1396c83dabbe105bde142e49838ac0029
函数签名

调用合约需要函数签名信息。

$ solc SimpleStorage.sol --hashes
输出:

======= SimpleStorage.sol:SimpleStorage =======
Function signatures:
6d4ce63c: get()
60fe47b1: set(uint256)
合约
由测试用户进行操作:

$ cita-cli rpc sendRawTransaction
–code 0x608060405234801561001057600080fd5b5060df8061001f6000396000f3006080604052600436106049576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360fe47b114604e5780636d4ce63c146078575b600080fd5b348015605957600080fd5b5060766004803603810190808035906020019092919050505060a0565b005b348015608357600080fd5b50608a60aa565b6040518082815260200191505060405180910390f35b8060008190555050565b600080549050905600a165627a7a723058205aed214856a5c433292a354261c9eb88eed1396c83dabbe105bde142e49838ac0029
–private-key 0x3ef2627393529fed043c7dbfd9358a4ae47a88a59949b07e7631722fd6959002
–url http://127.0.0.1:1337
输出:

{
“id”: 3,
“jsonrpc”: “2.0”,
“result”: {
“hash”: “0x8bca970a8836f291ca86d33beccb147c3d7b04b361589d41bd928db683d731aa”,
“status”: “OK”
}
}
获取 receipt 信息:

$ cita-cli rpc getTransactionReceipt
–hash 0x8bca970a8836f291ca86d33beccb147c3d7b04b361589d41bd928db683d731aa
–url http://127.0.0.1:1337
输出:

{
“id”: 1,
“jsonrpc”: “2.0”,
“result”: {
“blockHash”: “0x8cf225903eb7c49b0494f991941dcb4d401b2c51c321defa931914fb8f0aa87b”,
“blockNumber”: “0xf2”,
“contractAddress”: “0x5839153e0efe76efe0c974b728c4f49ca7ed75cc”,
“cumulativeQuotaUsed”: “0xaef9”,
“errorMessage”: null,
“quotaUsed”: “0xaef9”,
“logs”: [
],
“logsBloom”: “0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”,
“root”: null,
“transactionHash”: “0x8bca970a8836f291ca86d33beccb147c3d7b04b361589d41bd928db683d731aa”,
“transactionIndex”: “0x0”
}
}
得到合约地址为 0x5839153e0efe76efe0c974b728c4f49ca7ed75cc

部署CITA和区块链浏览器以及智能合约相关推荐

  1. 分享实录|区块链技术与智能合约入门(开发实例)

    2019独角兽企业重金招聘Python工程师标准>>> 1 什么是区块链 1.1白话讲解区块链 现在区块链特别火,可能大家都听说过区块链,听说过比特币,那到底什么是区块链? 前几天和 ...

  2. 【区块链DAPP】智能合约概述

    智能合约概述 智能合约是运行在区块链公链上的一种代码,该代码由Solidity编写,并通过区块链的智能合约虚拟机来执行,以达到对区块链编程的目标.可以将区块链公联理解为操作系统,Solidity是编写 ...

  3. 区块链中的智能合约是什么?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. "智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执 ...

  4. 行走在区块链上的智能合约

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 我和你打一个赌,我赌明天是雨天,你赌是晴天,赌注100大洋.假设明天是晴天,然后你跑过来管我要100大洋的赌金,我装疯卖 ...

  5. 第118篇 在区块链浏览器上调用合约

    本文环境:参考文档 "第111篇 在区块链浏览器上发布合约源码" 合约地址:0x9B78a00a63D38A8BF56965c891B8794C603EF2c6 1.定位合约及 R ...

  6. docker部署fisco bcos区块链浏览器

    首先你要搭建一个myql数据库(理论上mariadb也支持),并创建一个数据库,再建个账号给区块链浏览器使用,如: CREATE DATABASE `fisco` CHARACTER SET utf8 ...

  7. 区块链: 编译发布智能合约

    什么是智能合约?? 智能合约与平时的代码其实没有什么区别,只是运行于一个以太坊这样的分布式平台上而已.这个运行的平台,赋予了这些代码不可变,确定性,分布式和可自校验状态等特点.代码运行过程中状态的存储 ...

  8. 区块链技术:智能合约入门

    什么是智能合约 一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议.一个合约由一组代码(合约的函数)和数据(合约的状态)组成,并且运行在以太坊虚拟 ...

  9. tron区块链php对接,Tron区块链技术 - Tron智能合约概述

    Tron区块链技术:多年来,  以太坊  一直是分散世界中开发智能合约的主流平台之一.然而,最近TRON作为一个准备面对以太坊的竞争平台在分散网络中崛起. TRON区块链技术是什么? Tron区块链是 ...

最新文章

  1. 高考623分却说自己是“反面教材”?外卖小哥最新发声!
  2. MFC“未定义标识符”报错解决方法
  3. 使用JNDI+连接池
  4. 51单片机系列——基础指令
  5. linux安装mysql8.0_Linux系统:centos7下安装Jdk8、Tomcat8、MySQL5.7环境
  6. Red Hat Linux 5.4 开启xdm远程访问
  7. 双十一消费近万亿!1亿人见证数字物流,“尾款人”收货更快了?购物狂欢七大趋势浮现
  8. Java 8 Optional 类 学习
  9. 如何测试sql语句性能,提高执行效率
  10. 【转】Tomcat总体结构(Tomcat源代码阅读系列之二)
  11. 扬州晶澳-年产3GW高性能太阳能光伏组件项目 Acrel-3000WEB电能管理系统的设计及应用
  12. MOS管自举电容工作原理电路设计及其分析
  13. 漏洞:互联网时代的阿喀琉斯之踵 挖掘漏洞哪家强?
  14. java 阴阳历,Java基础-有意思的阴阳历互换的算法
  15. goahead文件下载
  16. 虚拟机ubuntu16.04下cheese 摄像头黑屏花屏问题
  17. 第五次课堂总结——付胤
  18. html 阅读swf,网页嵌入式 HTML5+Flash(swf) 视频播放器
  19. Linux内核的配置和编译
  20. Houdini中四种实现龙卷风速度场的方法及比较

热门文章

  1. FCC-函数式编程:使用 reduce 方法分析数据
  2. js:使用nodejs为页面传递mysql中的数据
  3. jsp:使用jsp完成数据的分页显示
  4. 解决Android Studio等开发软件出现更新TKK失败的两种方案
  5. 安卓预装软件卸载教程
  6. 线上连锁线下整合 连锁店电商解决方案
  7. 7-1 寻找大富翁 (25 分)
  8. 腾讯微信客服电话怎么直接人工服务呢
  9. python实现千牛客服自动回复语_千牛客服自动回复话术
  10. WIN10 USB3.0接口无法识别U盘-未知usb端口重置失败的解决