目前大数据交易平台借助区块链底层技术有两个方向的解决方案,一是借助区块链数据不可篡改的特性来记录数据所有使用过程,把区块链用来做数据之间使用权转移的记账,做数据确权。另一种方式是借助隐私计算,实现不交易数据本身,只交易数据的计算结果。
数据的使用记账,既然区块链有不可篡改的特点,那么就可以用区块链来记录对一个数据的所有使用的过程日志,也就是说对数据访问行为等这些所有的信息,我们可以把它保存下来,用区块链来对数据的使用情况做一个记账。
通过运行以下命令进行安装:rustup
curl https://sh.rustup.rs -sSf | sh
复制
通过运行以下命令,将当前 shell 配置为重新加载 PATH 环境变量,以便它包含 Cargo 目录:bin
source ~/.cargo/env
复制
通过运行以下命令,将 ## Rust toolchain配置为默认为最新版本:stable
rustup default stable
rustup update
复制
通过运行以下命令添加 nightly 版本和 nightly 的 WebAssembly(wsam):
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
复制
通过运行以下命令验证安装:
rustc --version
rustup show
复制
使用node template 准备 Substrate node
Substrate node template提供了一个工作开发环境,以便您可以立即开始在 Substrate 上进行构建。
编译Substrate node template:
通过运行以下命令,使用 latest版本分支克隆节点模板存储库:
git clone https://github.com/substrate-developer-hub/substrate-node-template
复制
通过运行以下命令进入到节点模板root目录:
cd substrate-node-template
We want to use the latest
tag throughout all of this tutorial
git checkout latest
复制
通过运行以下命令编译节点模板
cargo build --release
复制
/// Configure the pallet by specifying the parameters and types it depends on.
[pallet::config]
pub trait Config: frame_system::Config {
/// Because this pallet emits events, it depends on the runtime's definition of an event.
type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>;
//--snip--//
}
复制
通过将 ACTION #3 行替换为以下内容来声明pallet事件:
/// A new Kitty was successfully created. [sender, kitty_id]
Created(T::AccountId, T::Hash),
/// Kitty price was successfully set. [sender, kitty_id, new_price]
PriceSet(T::AccountId, T::Hash, Option<BalanceOf>),
/// A Kitty was successfully transferred. [from, to, kitty_id]
Transferred(T::AccountId, T::AccountId, T::Hash),
/// A Kitty was successfully bought. [buyer, seller, kitty_id, bid_price]
Bought(T::AccountId, T::AccountId, T::Hash, BalanceOf),