哈希图开发入门7-核心类Platform

什么是Platform类?

public final class Platform extends java.lang.object

是Swirlds的平台,运行应用,处理同步信息和达成共识。如果多个成员在同一个电脑上运行,每个成员都有自己的Platform对象。在同一个电脑上的Platform对象都是由同一个Browser对象创建和启动的,Browser是程序的入口Main类。



方法概要



static void beep()

播放嘟的声音。


static void beep(int pitch, int velocity, int duration)

播放嘟的声音。


static void click()

播放点击鼠标的声音


Console createConsole(boolean visible)

创建带有文字控制台的新窗口,大小和位置为推荐值,并包含Swirlds菜单。


boolean createTransaction(byte[] trans)

SwirldMain 对象调用这个方法创建一个新交易。


javax.swing.JFrame createWindow(boolean visible)

创建新窗口,大小和位置为推荐值,并包含Swirlds菜单。


java.time.Instant estimateTime()

估算一个交易最终达成共识的时间戳, 如果这个交易通过调用 createTransaction()刚被创建。


java.lang.String getAbout()

得到程序“关于我们”的最新字符串


Address getAddress()

得到运行这个Platform的成员地址。


Event[] getAllEvents()

得到哈希图中所有事件的数组。


int getNumMembers()

得到参与共识的成员数量。


java.lang.String[] getParameters()

得到Platform对象创建时被赋值的参数,如在config.txt中配置的参数。


long getSleepAfterSync()

得到Platform在传言同步启动后延迟的毫秒数。


SwirldState[] getState()

SwirldMain 对象可以调用这个方法得到当前的state对象。


Statistics[] getStats()

得到监控和报告网络与同步的统计对象。


byte[] getSwirldId()

得到当前swirld的ID


void setAbout(java.lang.String about)

SwirldMain 调用这个方法设置“关于”菜单显示的字符串


void setSleepAfterSync(long delay)

设置Platform在传言同步启动后延迟的毫秒数。


从接口 com.swirlds.platform.FastCopyable继承的方法

    equals

    getClass

    hashCode

    notify

    notifyAll

    toString

    wait

    wait

    wait


方法详解


getSwirldId

public byte[] getSwirldId()

得到当前swirld的ID。 一个应用可以创建多个不同swirld(所谓的网络,账本或共享世界)。它是swirld的唯一识别编号。

Returns:

    swirld的ID编号


getStats

public Statistics getStats()

得到监控和报告网络与同步的统计对象。

返回:

    Platform对象所关联的统计对象。


getSleepAfterSync    

public long getSleepAfterSync()

得到Platform在传言同步启动后延迟的毫秒数。默认值是0,但可以改变数值来减慢系统。用于系统测试。

返回:

    延迟的毫秒数。


setSleepAfterSync

public void setSleepAfterSync(long delay)

设置Platform在传言同步启动后延迟的毫秒数。 默认值是0,但可以改变数值来减慢系统。用于系统测试。

参数:

    delay - 延迟的毫秒数


setAbout

public void setAbout(java.lang.String about)

 SwirldMain调用这个方法设置当用户在窗口右上角点击“关于”菜单后显示的字符串。推荐字符串是一个包含应用名称,版本号和年份的简短字符串。

参数:

    about -  点击菜单“关于”后 窗口显示内容


getAbout

public java.lang.String getAbout()

得到程序“关于我们”的最新字符串

返回:

    菜单“关于”的显示内容


getParameters

public java.lang.String[] getParameters()

得到Platform对象创建时被赋值的参数,如在config.txt中配置的参数。

返回:

    参数数组


createTransaction

public boolean createTransaction(byte[] trans)

SwirldMain 对象调用这个方法创建一个新交易。这个新创建的交易内嵌于一个新创建的事件,并在同步过程发送给所有其他成员。同时它也会被发送给swirldState对象。

hintIDs 是建议系统尽快与IDhintIDs的成员同步。通过这个来保证这个交易能快速到达紧急需要它的成员。这只是一个提示,不能保证Platform对象完全这样做。

如果交易被创建的快与能被处理的速度,最终会形成大的积压。这时,调用createTransaction会返回失败,并不会创建交易。

一个交易最多1024个字节,如果长度超过1024,返回失败,并不会创建交易。

参数:

    trans - 被创建的交易,由swirld选择的方式编码t。

返回:

    true 如果成功


estimateTime

public java.time.instant estimateTime()

估算一个交易最终达成共识的时间戳, 如果这个交易通过调用 createTransaction()刚被创建。一个实时应用,例如游戏,通常在调用estTime()后重画屏幕,把屏幕上事物渲染成它将要成为的状态。

返回:

    估算的时间


getState

public SwirldState getState()

SwirldMain 对象可以调用这个方法得到当前的state对象。 SwirldMain需要经常调用这个方法,这样它总是能使用最新的State对象。因为Platform将会经常改变当前的State对象。

SwirldMain 必须确保对State对象的访问时同步的。所以要么State的getters方法和setters标记为“synchronized”,要么SwirldMain从State读取状态时,把调用包装在synchronized(…){…} 块中。

返回:

    当前state对象


getAllEvents

public Event[] getAllEvents()

得到哈希图中所有事件的数组。这个方法运行缓慢,所以不要频繁调用。返回的数组是一个浅复制,因此调用者可以改变它,其它 线程不会改变它。然而,它所引用的这些事件可能有字段被其它线程修改,不一定是被调用方修改。这个数组中会首先包含共识事件(按共识次序),然后是非共识事件(按收到时间)。

返回:

    所有事件的数组


getAddress

public Address getAddress()

得到Platform上所有运行成员的地址.

返回:

    the Address


createConsole

public Console createConsole(boolean visible)

创建带有文字控制台的新窗口,大小和位置为推荐值,并包含Swirlds菜单。 

参数:

    visible - 窗口是否初始化为可见?如果否,可以以后设置setVisible(true) 使它可见。

返回:

    新创建的窗口


createWindow

public javax.swing.JFrame createWindow(boolean visible)

创建新窗口,大小和位置为推荐值,并包含Swirlds菜单。 

参数:

    visible - 窗口是否初始化为可见?如果否,可以以后设置setVisible(true) 使它可见。

返回:

    新创建的窗口


click

public static void click()

播放点击鼠标的声音


beep

public static void beep()

播放嘟的声音。 它是中音C,一半音量,持续20毫秒。


beep

public static void beep(int pitch, int velocity, int duration)

播放嘟的声音。

参数:

    pitch - 音高, 从 0 到 127, 其中 60 是中音 C, 61 是 C#, 以此类推.

    velocity - 音符播放的音量,0 静音, 127 最大声音.

    duration - 声音播放的毫秒数


getNumMembers

public int getNumMembers()

得到参与共识的成员数量。也就是当前地址簿的大小。

返回:

    成员数量




原文:https://dev.hashgraph.com/docs/platform/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,153评论 1 44
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,084评论 1 32
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,577评论 18 399
  • “江湖上混,欠的总是要还的。”这句话是我现在与人交流中使用频率较高的句子。原因在于:曾经上学时期的我是一个不太...
    雪烟零度阅读 608评论 0 0