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

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

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模型的开发是为了解决序列转换及神经机器翻译问题。
9326 0
|
监控 负载均衡 Java
微服务架构下的服务治理与监控
微服务架构下的服务治理与监控
647 0
|
存储 数据采集 监控
大数据技术:开启智能决策与创新服务的新纪元
【10月更文挑战第5天】大数据技术:开启智能决策与创新服务的新纪元
|
消息中间件 API 开发工具
云速搭助力用友 BIP 平台快速接入阿里云产品
通过与阿里云合作,用友 BIP 集成了多款云产品,实现了快速集成、稳定可靠的一体化解决方案,显著提升了企业资源管理效率和业务灵活性。
285 97
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【10月更文挑战第3天】微信小程序作为新兴应用形态,凭借便捷体验与社交传播能力,成为企业拓展业务的新渠道。本文探讨了微信小程序全栈开发中的PWA技术应用,包括离线访问、后台运行、桌面图标及原生体验等方面,助力开发者提升小程序性能与用户体验。PWA技术在不同平台的兼容性、性能优化及用户体验是实践中需注意的关键点。
289 5
|
前端开发
前端:行内元素的 margin 和 padding
在前端开发中,行内元素的处理是至关重要的。行内元素默认与其他元素在同一行显示,不会占据独立的空间。对于行内元素而言,其外边距(margin)和内边距(padding)的设置有特定规则:垂直方向上的外边距和内边距不会影响其他元素,但水平方向的则会增加元素的宽度,可能会影响相邻元素的位置。合理设置这些属性,可以有效控制页面布局与间距。
|
机器学习/深度学习 自然语言处理 运维
探索深度学习在图像识别中的最新进展
探索深度学习在图像识别中的最新进展
|
IDE 开发工具 数据安全/隐私保护
如何对PDF的加密和破解?
PDF文档的加密与暴力破解加密文档
450 0
|
数据采集 XML 前端开发
5个方便好用的Python自动化脚本
5个方便好用的Python自动化脚本
279 0
|
Windows
.Net Framework 0x800b0109 -已处理证书链,但是在不受信任提供程序信任的根证书中终止。
.Net Framework 0x800b0109 -已处理证书链,但是在不受信任提供程序信任的根证书中终止。
1878 0
.Net Framework 0x800b0109 -已处理证书链,但是在不受信任提供程序信任的根证书中终止。