合约量化开发系统详情丨量化合约系统开发技术逻辑方案

简介: 合约量化开发系统详情丨量化合约系统开发技术逻辑方案

17.1DIFF协议

DIFF(Differential Information Flow for Finance)是一个基于websocket和json的应用层协议。websocket是全双工通信,当客户端和服务器端建立连接后,就可以相互发数据,建立连接又称为“握手”,“握手”成功就可以建立通信了,不用在每次需要传输信息时重新建立连接,即不会“掉线”。json是数据存储格式,json数据可以方便的反序列化为Python数据。

接下来几个基础步骤,使用以下代码段更新您的pallet代码(如果您不想使用模板代码,请跳过此步骤):

![cfg_attr(not(feature = "std"), no_std)]
pub use pallet::*;

[frame_support::pallet]
pub mod pallet {

use frame_support::pallet_prelude::*;
use frame_system::pallet_prelude::*;
use frame_support::{

sp_runtime::traits::Hash,
traits::{ Randomness, Currency, tokens::ExistenceRequirement },
transactional

};
use sp_io::hashing::blake2_128;

[cfg(feature = "std")]

use frame_support::serde::{Deserialize, Serialize};

// ACTION #1: Write a Struct to hold Kitty information.

// ACTION #2: Enum declaration for Gender.

// ACTION #3: Implementation to handle Gender type in Kitty struct.

[pallet::pallet]

[pallet::generate_store(pub(super) trait Store)]

pub struct Pallet(_);

/// 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>;

/// The Currency handler for the Kitties pallet.
type Currency: Currency<Self::AccountId>;

// ACTION #5: Specify the type for Randomness we want to specify for runtime.

// ACTION #9: Add MaxKittyOwned constant

}

// Errors.

[pallet::error]

pub enum Error {

// TODO Part III

}

// Events.

[pallet::event]

[pallet::generate_deposit(pub(super) fn deposit_event)]

pub enum Event<T: Config> {

// TODO Part III

}

[pallet::storage]

[pallet::getter(fn count_for_kitties)]

pub(super) type CountForKitties<T: Config> = StorageValue<_, u64, ValueQuery>;

// ACTION #7: Remaining storage items.

// TODO Part IV: Our pallet's genesis configuration.

[pallet::call]

impl<T: Config> Pallet {

// TODO Part III: create_kitty

// TODO Part IV: set_price

// TODO Part IV: transfer

// TODO Part IV: buy_kitty

// TODO Part IV: breed_kitty

}

// Our helper functions.//

impl<T: Config> Pallet {

// ACTION #4: helper function for Kitty struct

// TODO Part III: helper functions for dispatchable functions

// ACTION #6: function to randomly generate DNA

// TODO Part III: mint

// TODO Part IV: transfer_kitty_to

}
复制
}
复制
除了此代码,我们还需要导入serde 。将其添加到pallet的 Cargo.toml 文件中,使用匹配的版本作为substrate upstream。

相关文章
|
机器学习/深度学习 人工智能 网络架构
Transformer原理解析——一种Open AI和DeepMind都在用的神经网络架构
Transformer模型是一种日益流行的神经网络结构。它最近被OpenAI用于他们的语言模型中。与此同时,近期也被DeepMind用于它们的程序“星际争霸”中击败了一名顶级职业星际玩家。 Transformer模型的开发是为了解决序列转换及神经机器翻译问题。
9212 0
|
消息中间件 API 开发工具
云速搭助力用友 BIP 平台快速接入阿里云产品
通过与阿里云合作,用友 BIP 集成了多款云产品,实现了快速集成、稳定可靠的一体化解决方案,显著提升了企业资源管理效率和业务灵活性。
257 97
|
12月前
|
监控 负载均衡 Java
微服务架构下的服务治理与监控
微服务架构下的服务治理与监控
629 0
|
9月前
|
人工智能 Java 程序员
一文彻底搞定C语言的表达式和语句
本文介绍了C语言中的表达式和语句,涵盖算术、关系等表达式及各类语句的用法,帮助初学者理解核心概念。本文介绍C语言表达式(算术、关系等)和语句(表达式、复合、控制、函数、空语句),助你掌握核心概念。
692 0
一文彻底搞定C语言的表达式和语句
|
机器学习/深度学习 自然语言处理 运维
探索深度学习在图像识别中的最新进展
探索深度学习在图像识别中的最新进展
|
小程序 JavaScript
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
本文介绍了微信小程序中的数据绑定、事件绑定、事件传参与数据同步的基本概念和使用方法,包括如何在data对象中定义数据、使用mustache语法在wxml中渲染数据、绑定和处理事件、事件对象属性、事件传参以及实现输入框与data数据的同步。
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
|
存储 算法 数据挖掘
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
|
Windows
.Net Framework 0x800b0109 -已处理证书链,但是在不受信任提供程序信任的根证书中终止。
.Net Framework 0x800b0109 -已处理证书链,但是在不受信任提供程序信任的根证书中终止。
1782 0
.Net Framework 0x800b0109 -已处理证书链,但是在不受信任提供程序信任的根证书中终止。
|
算法 程序员 C++
C++程序中的循环语句:实现重复执行的关键
C++程序中的循环语句:实现重复执行的关键
861 2
|
数据安全/隐私保护 开发者
Dataphin权限体系(4):表级权限与字段级权限介绍【Dataphin V3.7】
在使用开发过程的权限体系时,不同的场景需要有不同的权限配置粒度,才能较好满足不同的业务需求,如Dataphin就有项目级权限、表级权限和字段级权限。在实际的业务开展中,一般需要综合运用不同等级的权限才能达到比较好的权限管理效果。
Dataphin权限体系(4):表级权限与字段级权限介绍【Dataphin V3.7】