# contract-copyright **Repository Path**: eostech/contract-copyright ## Basic Information - **Project Name**: contract-copyright - **Description**: 版权存证智能合约样例 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-21 - **Last Updated**: 2023-06-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 此项目作为智能合约开发人员开发智能合约的样例和参考。 # 功能 为区块链账户用户所拥有的内容文件的版权,在区块链上进行存证。 # 项目文件 ## 代码源文件 copyright.hpp copyright.cpp ## 李嘉图合约描述文件 copyright.clauses.md 合约总体的约定条款 copyright.contracts.md 合约action的约定条款 ## 项目构建配置文件 Makefile 编译合约的命令配置,构建工具make使用它来编译构建项目文件。 # 开发编译环境 代码完成后需要编译,编译需要一个专门的合约编译工具CDT(Contract Development Tools). 可以使用官方已有的docker镜像(boscore/cdt:v3.0.2)来构建开发环境 本样例中,有一个脚本文件runcdt.sh. 在合约代码根目录下执行下面语句,即可进入编译环境。 ``` ./runcdt.sh ``` runcdt.sh会从官方的docker仓库自动下载CDT镜像到本地仓库,并进入容器(如果你的主机不能连网,可自行下载镜像包,然后docker load到本地仓库)。 然后,就可以继续build合约。 # Build合约 构建工具为make,make使用Makefile来构建。 执行: ``` $make ``` 生成的可执行合约文件在build目录下: copyright.abi copyright.wasm # 发布合约 ``` $cleos system newaccount eosio copyright EOS5VF2f2oCVbAQBAdMdt4tWB8hA4j2nF4FCaGf1HAK9LdKLEskgg EOS5VF2f2oCVbAQBAdMdt4tWB8hA4j2nF4FCaGf1HAK9LdKLEskgg \ --stake-net '10.0000 SYS' \ --stake-cpu '10.0000 SYS' \ --buy-ram-kbytes 500 \ -p eosio $cleos set contract copyright /contracts/copyright copyright.wasm copyright.abi -p copyright ``` # Actions action是交易调用的函数 ## 版权内容存证 `ACTION copyright::add(name authority, name owner, uint64_t assetid,string assetdesc, string assethash);` ## 删除存证 `ACTION copyright::remove(name authority, uint64_t id)` # 交易与查询范例 ``` alias cl='cleos --url http://127.0.0.1:3921 --wallet-url http://127.0.0.1:3923' 其中: -u,--url TEXT=http://127.0.0.1:8888/ the http/https URL where nodeos is running --wallet-url TEXT=unix:///home/zhanghan/eosio-wallet/keosd.sock the http/https URL where keosd is running ``` ## 存证交易 ``` $cleos push action copyright add '["copyright", "alice", 10001, "万里江山图", "dc1345f33f92458fbb2994eede"]' -p copyright executed transaction: 730c56d77f9493f33a77d125574f44af4982e8584145945fac358eef5ef2ce88 160 bytes 217 us # copyright <= copyright::add {"authority":"copyright","owner":"alice","assetid":10001,"assetdesc":"万里江山图","assethash":"... warning: transaction executed locally, but may not be confirmed by the network yet ``` -p,--permission TEXT ... An account and permission level to authorize, as in 'account@permission' ## 查询 ``` $cleos get table copyright copyright copyrights { "rows": [{ "id": 0, "owner": "alice", # 版权所有者账户 "assetid": 10001, # 版权内容的ID,由业务管理系统指定 "assetdesc": "万里江山图", # 版权内容的描述 "assethash": "dc1345f33f92458fbb2994eede" # 版权内容的hash } ], "more": false } ``` # 资源 [开发人员门户](https://developers.eos.io) [eosio.cdt开发手册 v1.6](https://developers.eos.io/manuals/eosio.cdt/v1.6/index)