精华内容
下载资源
问答
  • zabbix使用fping监控任意节点之间的网络质量、丢包率和响应时间 zabbix使用fping监控任意节点之间的网络质量、丢包率和响应时间 之前的博文 使用zabbix3.0.4的ICMP Ping模版实现对...

    zabbix使用fping监控任意两个节点之间的网络质量、丢包率和响应时间

    zabbix使用fping监控任意两个节点之间的网络质量、丢包率和响应时间
    
    之前的博文 使用zabbix3.0.4的ICMP Ping模版实现对客户端网络状态的监控 https://www.cnblogs.com/reblue520/p/6832059.html
    
    只能监控zabbix server到zabbix_agent之间的网络情况,不能监控任意两点间的网络情况
    
    此次的方法可以监控任意两点之间的网络情况
    
    需求:
    mysql主从之间同步经常会延迟,为了查看是否网络问题,先添加两个节点之间的网络质量,使用fping命令进行丢包检测
    
    1.在从库的zabbix-agent端安装fping
    centos6安装如下版本,其他版本可能无法运行
    
    wget http://www.fping.org/dist/fping-3.16.tar.gz
    tar zxvf fping-3.16.tar.gz
    cd fping-3.16
    ./configure --prefix=/usr/local/fping/
    
    make && make install
    
    2.添加fping的sudo权限 visudo
    zabbix ALL=(ALL) NOPASSWD:/usr/local/fping/sbin/fping
    
    3.修改配置文件客户端配置文件
    # vim /usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd.conf
    
    # 丢包率 -p 间隔100毫秒fpint一次,-c 10 表示10次
    UserParameter=eus_accountdb_net_loss,sudo /usr/local/fping/sbin/fping -p 100 -c 10 1.1.1.1 2>&1| tail -n 1 | awk -F ' ' '{print $5}'| cut -d '/' -f3 | cut -d '%' -f1
    
    # 优化后的表达式
    UserParameter=eus_accountdb_net_loss,sudo /usr/local/fping/sbin/fping -p 100 -c 10 1.1.1.1 2>&1| tail -n 1 |awk -F '/' '{print +$5}'
    
    # 平均响应时间
    ./fping -p 50 -c 10 1.1.1.1 2>&1| tail -n 1 | awk '{print $NF}' | cut -d '/' -f2
    
    
    # 添加监控项目
    
    eus_accountdb_net_loss
    
    # 添加触发器
    eus accountdb ping loss great than 50%
    
    {account_DB_Master:eus_accountdb_net_loss.last(0)}>50

     

    posted @ 2019-05-31 17:54 reblue520 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • Cocos2dx 最重要的基类节点类-Node

    千次阅读 2016-09-12 21:21:33
    节点类是场景类、布景类、精灵类等多个重要类的基类,它负责管理游戏基本单位的基本数据(如位置坐标,缩放比例等。),而场景类,布景类,精灵类则是对其进行扩展。此类中给出的重要方法都可以供其他继承类使用。在...

    节点类是场景类、布景类、精灵类等多个重要类的基类,它负责管理游戏基本单位的基本数据(如位置坐标,缩放比例等。),而场景类,布景类,精灵类则是对其进行扩展。此类中给出的重要方法都可以供其他继承类使用。在学习其子类的时候最好对此类有所了解。

    Node类继承与最基础的ref类

    精灵类、场景类、布景类等重要的可视化元素类都继承Node类。


    需要用到的数据类型

    Point类 点 参数是两个浮点型的数据,代表X坐标和Y坐标。

    Size类  大小 参数是两个浮点型数据,代表横向长度和纵向长度。

    Vertex3F 三维向量 参数是3个浮点型数据,代表三维向量中3个坐标。


    Node类的重要方法(也是其子类精灵类、场景类、布景类的重要方法)

    关于节点创建和节点操作顺序的相关方法:

    static Node* create(void)  创建一个节点对象(子类亦同样),采用工厂模式。

    virtual std::string getDescription() 获取节点描述信息字符串。

    virtual [void/float] set/getGlobalZOrder(float globalZOrder) 设置/获取全局ZOrder值。

    virtual [void/float] set/getLocalZOrder(float LocalZOrder) 设置/获取节点本地ZOrder值。

    virtual [void/int] set/getOrderOfArrival(int orderOfArrival) 设置/获取节点的到达顺序。

    ZOrder是使用与对节点进行绘制时决定节点的前后遮盖顺序用的。

    全局ZOrder优先级大于本地ZOrder。

    也就是说 当全局ZOrder相同的时候,由本地ZOrder决定绘制顺序。


    关于节点图形属性的方法:

    virtual  [void/float]  [set/get]Scale[X/Y/Z](float scale) 获取/设置在X/Y/Z轴的缩放倍数。

    virtual  [void/float]  [set/get]Scale(float scale) 获取设置整体绘制缩放倍。

    virtual  void  setScale(float ScaleX,float ScaleY) 设置缩放倍数,两个参数代表X,Y轴上的缩放倍数。

    virtual  [void/const Point&] [set/get]Position(const Point &position) 获取/设置节点的位置。

    virtual [void/Vertex3F] [set/get]Position3D(const Vertex3F &position) 获取/设置在三维空间中的位置。

    virtual [void/float]  [set/get]Position[X/Y/Z](float position) 获取/设置XYZ坐标点。

    virtual  [void/float]  [set/get]Skew[X/Y](float skew) 获取/设置X/Y轴的倾斜数值。

    virtual  [void/const Point &anchorPoint]  [set/get]AnchorPoint(const Point& anchorPoint) 获取/设置节点锚点。

    关于节点的锚点

    锚点 即使节点的原点(节点在自己的坐标系里坐标为(0,0)的点)  并不是指在总坐标系里的原点。

    锚点 (0,0)  原点在节点最左下角。

    锚点 (0,1)  原点在节点最左上角。

    锚点 (1,1)  原点在节点最右上角。

    锚点 (1,0)  原点在节点最右下角。

    锚点 (0.5,0.5)  原点在节点中间。

    virtual [void/const &size] [set/get]ContentSzie(const Size &contentSize) 设置/获取节点的尺寸,获取回来是矩形。

    virtual [void/bool]  [set/get]VisibleSize(bool visible) 设置/获取节点是否可见,可见返回TRUE。

    virtual  [void/float]  [set/get]Rotation(float ratation) 设置/获取节点的旋转角度值。

    virtual  [void/Vertex3F]  [set/get]Rotation3D(const Vertex3F &ratation) 设置/获取三维空间中的旋转姿态。

    virtual  [void/float]  [set/get]RotationSkew[X/Y](float rotation) 设置/获取在坐标轴上的旋转偏移值。

    virtual  [void/bool]  [set/get]isIgnoreAnchorPointForPosition(bool ignore) 设置/获取在确定节点位置时是否忽略锚点的作用,true时忽略。


    节点类Node采用组合模式,父子节点形成树形结构以表示“整体-部分”的结构层次。

    关于节点操作的方法最能体验这模式的精髓,以下是有关节点操作的方法。

    virtual void addChild(Node * child)  向节点中添加子节点,参数是节点指针。

    virtual void addChild(Node * child,int localZOrder)  向节点中添加子节点,localZOrder参数表示子节点在节点中的本地ZOrder值。

    virtual void addChild(Node * child,int localZOrder,int tag)  添加子节点,tag是子节点的标签。

    virtual Node * getChildByTag(int tag) 通过子节点标签获取相应子节点。

    virtual Vector<Node*> &getChildren()  获取子节点对象指针的容器。

    virtual [void/Node*] [set/get]Parent(Node *parent) 设置/获取节点的父节点。

    virutal void removeFromParent() 将这个节点从父节点里删除。

    virtual void removeFromParentAndCleanup(bool cleanup)  将这个节点从父节点里删除,并且清除此节点上所有动作以及回调,false时不清除。

    virtual void removeChild(Node* child,bool cleanup =  true)  从节点中删除子节点,并且清除子节点上所有动作以及回调。

    virtual void removeChildByTag(int tag,bool cleanup=true) 通过子节点标签从此节点里删除子节点,并且清除子节点上所有动作以及回调。

    virtual void removeAllChildren() 删除此节点上所有子节点。

    virtual void removeAllChildrenWithCleanup(bool cleanup) 删除此节点上所有子节点,并且清除子节点上所有动作以及回调。

    virtual void reorderChild(Node* child,int localZOrder) 重设子节点的本地ZOrder值。

    virtual void sortAllChildren() 为子节点排序。

    virtual int getTag() 获取此节点标签。

    virtual void setTag(int tag)设置此节点标签。


    与用户数据相关的方法,有了这些方法开发者就能把数据存入节点中,在需要的时候取出来。

    virtual void* getUserDAata() 获取及诶单中预设的用户数据,返回值为用户数据指针。

    virtual void setUserData(void *userData)设置节点中的用户数据。

    virtual Ref* getUserObject()  获取节点中预设的用户对象,返回值为用户对象指针。

    virtual void setUserObject(Ref *userObject)  设置节点中的用户对象。


    事件回调方法

    virtual void onEnter()  每次进入节点时被回调。(进入的意思是当节点进入游戏时)

    virtual void  onEnterTransitionDidFinish()  节点进入完成后回调。

    virtual void onExit()  节点退出时回调。(退出的意思指节点退出游戏时)

    virtual void onExitTransitionDidStart()。 节点在退出时需要处理事情(如过渡动画等),则在退出前回调。

    virtual void cleanup()  停止所有正在运行的操作和调度。


    动作执行相关方法

    virtual void setActionManager(ActionManager* actionManager) 设置动作管理器。

    virtual ActionManager* getActionManager() 获取动作管理器指针。

    Action* runAction(Action* action)  执行指定动作并返回动作指针。

    void stopAllActions() 停止所有动作并删除动作。

    void stopAction(Action* action) 删除并停止指定动作。

    void stopActionByTag(int tag) 根据标签删除并停止指定动作。

    Action * getActionByTag(int tag) 根据标签获取相应动作。


    定时调度相关方法

    virtual void setScheduler(Scheduler* scheduler) 设置定时调度器

    virtual Scheduler* getScheduler() 获取定时调度器

    bool isScheduled(SEL_SCHEDULE selector) 判断指定的选择器是否被调度,已被调度返回true。

    void scheduleUpdate() 开始定时回调updata方法。

    void scheduleUpdateWithPriority(int priority) 按照自定义优先级开始定时调度update方法 参数为自定义优先级。

    void unscheduleUpdate() 停止定时回调update方法。

    void schedule(SEL_SCHEDULE selector,float interval,unsigned int repeat,float delay) 定时回调制定的调度器,参数为:调度器,每次回调的时间间隔,回调次数,第一次回调前等待多长时间)。

    void schedule(SEL_SCHEDULE selector,float interval)上面的简化版,参数为:调度器,每次回调的时间间隔。

    void schedule(SEL_SCHEDULE selector,float delay)同上,参数为:调度器,第一次回调等待多长时间。

    void schedule(SEL_SCHEDULE selector) 制定调度器每帧回调一次。

    void unschedule(SEL_SCHEDULE selector)  停止回调制定调度器。

    void unscheduleAllSelectors() 停止所有调度器。

    void resume(void)  回复所有设置的被回调的调度器,同时恢复动作和事件监听。

    void pause(void)  暂停所有设置的被回调的调度器,同时暂停动作和事件监听。

    virtual void update(float delta) 用于开发人员重写后被定时或每帧回调update方法,delta参数为回调间时间差值。


    坐标转换相关方法

    Point converToNodeSpace(const Point& worldPoint) 将制定点的坐标由世界坐标系转换到本节点坐标系。

    Point converToWorldSpace(const Point& nodePoint) 与上相反。

    Point convertTouchToNodeSpace(Touch * touch)  将触控点坐标由世界坐标系转换为节点坐标系。


    组件相关方法

    virtual bool addComponent(Component * pComponent) 想节点中添加组件,添加成功返回true。

    Component* getComponent(const std::string& pName) 通过组件名称获取组件。

    virtual bool removeComponent(const std::string& pName)  通过名称移除组件。

    virtual void removeAllComponents() 移除所有组件。


    其余方法

    virtual bool isRunning() 判断是否接受时间方法回调(onEnter,onExit等),简单的说就是判定节点是否在运行。

    virtual Rect getBoundingBox() 获取节点的矩形边框并返回。

    virtual void setEventDispatcher(EventDispatcher* dispacher) 设置事件分发器。

    virtual EventDispatcher* getEventDispatcher() 获取事件分发器并获取指针。

    virtual Scene* getScene() 获取所在场景


    我们可以看到Node节点类几乎全部方法都是可以重写的。


    展开全文
  • 个链表的第一个公共节点

    万次阅读 多人点赞 2018-09-02 15:34:28
    可以看到个链表中有一个公共节点,其中橙色的节点就是这个链表的公共节点。  看到这个题目,容易想到的方法是使用蛮力法解决:在第一个链表上顺序遍历每一个节点,每遍历到一个节点,就在第二个链表上顺序遍历...

    问题描述

    输入两个链表,找出它们的第一个公共结点。

    含有公共节点的两个链表的结构类似于下图中的链表:

    可以看到两个链表中有一个公共节点,其中橙色的节点就是这两个链表的公共节点。  

    看到这个题目,容易想到的方法是使用蛮力法解决:在第一个链表上顺序遍历每一个节点,每遍历到一个节点,就在第二个链表上顺序遍历每个节点。如果在第二个链表上有一个节点与第一个链表上的节点一样,则说明两个链表在这个节点上重合,于是就找到了他们的公共节点。如果第一个链表的长度为m,第二个链表的长度为n,那么,显然该方法的时间复杂度是O(mn)。

    通常蛮力法不会是最好的方法,我们接下来试着分析有公共节点的两个链表有哪些特点。从链表节点的定义可以看出,这两个链表是单向链表。如果两个单向链表有公共的节点,那么这两个链表从某一节点开始,他们的next都指向同一个节点。但由于是单向链表的节点,每个节点只有一个next,因此从第一个公共节点开始,之后他们的所有节点都是重合的,不可能再出现分叉。所以两个有公共节点而部分重合的链表,其拓扑形状看起来像一个Y,而不可能像一个X,如下图所示。

    经过分析我们发现,如果两个链表有公共结点,那么公共结点出现在两个链表的尾部。如果我们从两个链表的尾部开始往前比较,那么最后一个相同的结点就是我们要找的结点。可问题是,在单向链表中,我们只能从头结点开始按顺序遍历,最后才能到达尾节点。最后到达的尾节点却要最先被比较,这听起来是不是像“后进先出”?于是我们就能想到用栈的特点来解决这个问题:分别把两个链表的结点放入两个栈里,这样两个链表的尾节点就位于两个栈的栈顶,接下来比较两个栈顶的结点是否相同。如果相同,则把栈顶弹出接着比较下一个栈顶,直到找到最后一个相同的节点。

    在上述思路中,我们需要用两个辅助栈。如果链表的长度分别为m和n,那么空间复杂度是O(m+n)。这种思路的时间复杂度也是O(m+n)。和最开始的蛮力法相比,时间效率得到了提高,相当于是用空间消耗换取了时间效率。

    之所以需要用到栈,是因为我们想同时遍历到达两个栈的尾节点。当两个链表的长度不相同时,如果我们从头开始遍历到达两个栈的尾节点的时间就不一致。其实解决这个问题还有一个更简单的办法:首先遍历两个链表得到他们的长度,就能知道哪个链表比较长,以及长的链表比短的链表多几个结点。在第二次遍历的时候,在较长的链表上先走若干步,接着同时在两个链表上遍历,找到的第一个相同的结点就是他们的第一个公共结点。

    第三种思路比第二种思路相比,时间复杂度为O(m+n),但我们不在需要辅助栈,因此提高了空间效率。当我们理清了解决问题的思路决定使用第三种方法查找两个链表的第一个公共节点的时候,就可以动手写代码了。

    查找两个链表的第一个公共节点的Java代码实现:

    其中使用到的链表的数据结构如下:

    public class ListNode {
        int val;
        ListNode next = null;
    
        ListNode(int val) {
            this.val = val;
        }
    }

    其中测试的两个链表的结构如下:

    查找两个链表的第一个公共节点的代码如下:

    public class Solution {
    
        public static void main(String[] args) {
            //构造链表结构测试用
            ListNode a = new ListNode(1);
            ListNode b = new ListNode(2);
            ListNode c = new ListNode(3);
            ListNode d = new ListNode(4);
            ListNode e = new ListNode(5);
            ListNode f = new ListNode(6);
            ListNode g = new ListNode(7);
            //第一个List
            a.next = b;
            b.next = c;
            c.next = f;
            f.next = g;
            //第二个List
            d.next = e;
            e.next = f;
            f.next = g;
    
            Long begintime = System.nanoTime();
            ListNode result =  FindFirstCommonNode(a,d);
            Long endtime = System.nanoTime();
    
            if(result!=null){
                System.out.println("两个链表的第一个公共节点为:"+result.val+",运行时间:"+(endtime - begintime) + "ns");
            }else{
                System.out.println("两个链表不相交");
            }
    
        }
    
        public static ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
            int count1 = 0;
            int count2 = 0;
            ListNode commonNode = null;
            ListNode pNode1 = pHead1;
            ListNode pNode2 = pHead2;
            //得到链表1的长度
            while(pNode1!=null){
                count1++;
                pNode1 = pNode1.next;
            }
            //得到链表2的长度
            System.out.println("List1的长度为:"+count1);
            while(pNode2!=null){
                count2++;
                pNode2 = pNode2.next;
            }
            System.out.println("List1的长度为:"+count2);
            //令pNode1和pNode2重新指向头结点
            pNode1 = pHead1;
            pNode2 = pHead2;
            int sub = count1 - count2;
            System.out.println("两个List相差"+sub+"个节点");
            //先在长链表上走几步,再同时在两个链表上遍历
            if(sub>0){
                for(int i = 0;i < sub;i++){
                    pNode1 = pNode1.next;
                }
            }else{
                for(int i = 0;i < Math.abs(sub);i++){
                    pNode2 = pNode2.next;
                }
            }
            System.out.println("List1从"+pNode1.val+"开始比较,List2从"+pNode2.val+"开始比较");
            //得到第一个公共节点
            while(pNode1!=null && pNode2!=null){
                if(pNode1!=pNode2){
                    pNode1 = pNode1.next;
                    pNode2 = pNode2.next;
                }else{
                    commonNode = pNode1;
                    return commonNode;
                }
            }
            return commonNode;
        }
    
    }
    

    程序运行结果:

    如果第一个链表和第二个链表的长度分别为m和n,那么该算法的时间复杂度为O(m+n),空间复杂度为O(1)

    展开全文
  • HPB开发节点搭建指南

    万次阅读 2019-04-16 09:38:58
    导读: 社区开发者在开发HPB DAPP的时候首先面临的就是如何接入HPB主网的问题,本文介绍了...进行开发节点搭建时您有以下种方式选择: (1) 方式一:通过源代码进行节点搭建,选择此种搭建方式需要具备一定...

    导读: 社区开发者在开发HPB DAPP的时候首先面临的就是如何接入HPB主网的问题,本文介绍了开发者节点的搭建过程,本文基于Ubuntu 16.04搭建,开发节点相当于轻节点,可发起交易,进行区块同步,但不能进入候选节点、高性能节点的选举,也不能出块,可作为DAPP应用的接入节点。

    进行开发节点搭建时您有以下两种方式选择:

    (1) 方式一:通过源代码进行节点搭建,选择此种搭建方式需要具备一定软件编程基础。了解编译过程。本方式需要首先完成GO编译环境安装,然后按照源代码搭建步骤及示例进行;

    (2) 方式二:通过HPB可执行文件进行节点搭建。本方式直接按照可执行文件搭建步骤及示例进行。

    注意:

    ​ 1.HPB程序必须以ROOT权限运行。

    ​ 2. 任何与账户密码相关的操作不要委托他人操作,以免密码泄露。

    ​ 3. 启动节点必须用户本人操作以防止密码泄露。

    1. 检查网络连接

    进行节点搭建前,用户需要检查服务器的网络连接,分别输入以下五个命令,以检测服务器连接bootnode的过程中是否存在延迟、丢包现象。

      编号 命令 节点位置
      1 ping -c 200 47.254.133.46 德国 |
      2 ping -c 200 47.94.20.30 北京 |
      3 ping -c 200 47.88.60.227 硅谷 |
      4 ping -c 200 47.75.213.166 香港 |
      5 ping -c 200 47.100.250.120 上海 |

    示例:(仅以编号1为例,其余命令用户均需执行)

    输入命令:ping 47.254.133.46后,等命令结束后控制台会输出总结信息,其中“200 packets transmitted”表示发送200次包,“186 received”表示接受186次包,“7% packet loss”表示连接过程中丢包比例为7%;“time 199386ms”表示200次连接总耗时199836ms,“rtt min/avg/max/mdev = 230.439/248.901/290.203/9.397 ms”表示200次连接中最短时间为234.439ms,平均时间为248.901ms,最长时间为290.203ms,平均方差为9.397ms。

    提示:如服务器位置与节点位置为相同洲,则丢包现象需为0%、延迟小于100ms才能达标;(如国内服务器连北京或上海节点时,丢包现象应为0%);当为跨洲连接时,丢包现象一般存在,延迟一般不超过300ms,但其达标数值很难界定,当用户对其丢包比例以及延迟现象不确定时,可询问HPB社区工作人员这两项是否达标。

    不达标的用户需联系网络服务提供商或者数据中心,解决网络问题。

    2. 源代码搭建示例

    (1) 步骤1确定程序执行路径

             输入**sudo mkdir** */home/ghpb-bin*创建程序执行路径;
    

    ​ 其中/home/ghpb-bin可改为指定路径

    ​ 切换成ROOT用户,根据提示输入ROOT账户密码;

    (2) 步骤2 选择下载路径

        输入 **cd** */home/*;其中/home/可改为指定路径;       
    

    (3) 步骤3 下载HPB主网可执行程序

        输入 **sudo git clone** *https://github.com/hpb-project/hpb-release*
    

    ​ 提示:如果提示go-hpb已存在,则输入命令:rm -rf go-hpb后再下载go-hpb源码。

    (4) 步骤4 查看HPB主网可执行程序

             输入**cd** *hpb-release/*进入hpb-release目录,输入ls命令查看该目录文件,可看到bin、config和README.md三个文件。
    

    (5) 步骤5 拷贝创世文件到执行路径

             输入**cd** *config/*进入config目录,继续输入**sudo** **cp** *gensis.json /home/ghpb-bin/**;*其中/hone/gphb-bin/为您所设置的程序执行路径。
    

    (6) 步骤6 进入下载路径

             输入**cd** */home/*将源码下到home目录下,其中/home/可改为源码下载路径
    

    索引:HPB源代码

    (7) 步骤7编译go-hpb

         输入**cd** *go-hpb/*;继续输入**make all**编译go-hpb;
    

    (8) 步骤8拷贝程序到执行路径

             输入**sudo cp** *build/bin/\* /home/ghpb-bin/*即可;
             其中/home/ghpb-bin/为您设置的程序执行路径;   
    

    (9) 步骤9 初始化节点

             输入**cd** */home/ghpb-bin/*进入程序执行路径;继续输入**sudo** *./ghpb* **--datadir** *node/data* **init** *gensis.json*,当出现”Successfully wrote genesis state database=chaindata”时,继续下一步;其中/home/ghpb-bin/为您设置的程序执行路径; 
    

    (10) 步骤10导出账户

          从HPB钱包导出您的账户信息文件,输入cd node/data/后继续输入mkdir keystore即可,输入ls可看到ghpb和keystore两个文件;
    

    ​ 按顺序进入路径/home/ghpb-bin/node/data/keystore,将账户信息文件拷入keystore文件夹中;

    ​ 提示:如果没有权限进入这个目录,输入命令 chmod 777 /home/ghpb-bin -R,之后再重新进入。

    (11) 步骤11 新建账户

              输入 ./ghpb --datadir node/data account new,稍等片刻根据提示设置新账户的密码,重复输入后将返回新账户地址,用户需记录该地址;
    

    (12) 步骤12启动节点

            **启动方式一**:输入**cd** */home/ghpb-bin/*进入ghpb-bin目录,继续输入
    
    1
    
    sudo ./ghpb --datadir node/data  --networkid 100 --port 3004 --syncmode full  --nodetype synnode console;

    ​ 当出现“Welcome to the GHPB JavaScript console!”信息时,节点启动成功。

    (13) 提示:节点间测试带宽的端口号为本地ghpb端口号加100;开发节点防火墙中本地端口(如3004)必须打开,测试带宽端口可不打开,选择启动方式一时,如果用户退出远程服务器或者关掉终端,节点程序将停止运行。

    ​ 启动方式二:输入cd /home/ghpb-bin/进入ghpb-bin目录后,继续输入

    1
    
    sudo nohup ./ghpb --datadir node/data --networkid 100   --verbosity 3 --syncmode full --rpc --rpcapi hpb,web3,admin,txpool,debug,personal,net,miner,prometheus  --nodetype synnode  &

    然后,按两次回车;

    提示:节点间测试带宽的端口号为本地ghpb端口号加100;开发节点防火墙中本地端口(默认为30303)必须打开,测试带宽端口可不打开,等待15s后继续输入命令:

    1
    
    sudo *./ghpb* attach http://127.0.0.1:8545

    3. 可执行文件搭建示例

    (1) 步骤1确定程序执行路径

                 输入**sudo mkdir** */home/ghpb-bin*创建程序执行路径;其中/home/ghpb-bin可改为指定路径
    

    切换成ROOT用户:输入su root;根据提示输入ROOT账户密码;

    (2) 步骤2 选择下载路径

              输入 **cd** */home/*;其中/home/可改为指定路径;
    

    (3) 步骤3 下载HPB主网可执行程序

              输入**sudo git clone** <https://github.com/hpb-project/hpb-release>
    

    如果提示hpb-release已存在,则输入命令:rm -rf hpb-release后再下载hpb-release文件

    (4) 步骤4 查看HPB主网可执行程序

               输入**cd** *hpb-release/*进入hpb-release目录,输入ls命令查看该目录文件,可看到bin、config和README.md三个文件。
    

    (5) 步骤5 拷贝创世文件到执行路径

                输入**cd** *config/*进入config目录,继续输入**sudo** **cp** gensis.json  /home/ghpb-bin/,其中/hone/gphb-bin/为您所设置的程序执行路径。
    

    (6) 步骤6 进入下载路径

    ​ 输入cd .. ,继续输入cd bin/,进入到bin目录,然后解压HPB主网程序

    ​ 输入sudo tar zxvf ghpb-vx.x.x.x.tar.gz 命令解压ghpb-vx.x.x.x.tar.gz文件,其中x.x.x.x为HPB软件的最新版本号

    (7) 步骤7修改文件权限:

    ​ 输入 sudo chmod +x ghpb-v0.0.0.1 -R

    (8) 步骤8 拷贝程序到执行路径

    ​ 输入sudo cp ghpb-vX.X.X.X/* /home/ghpb-bin/,其中/home/ghpb-bin/为您设置的程序执行路径;

    (9) 步骤9 初始化节点

                输入**cd** */home/ghpb-bin/*进入程序执行路径;继续输入**sudo** *./ghpb* **--datadir** *node/data* **init** *gensis.json*,当出现”Successfully wrote genesis state database=chaindata”时,继续下一步;其中/home/ghpb-bin/为您设置的程序执行路径;
    

    (10) 步骤10 导出账户

                  从HPB钱包导出您的账户信息文件,创建keystore,输入cd node/data/后继续输入mkdir keystore即可;
    

    ​ 输入ls可看到ghpb和keystore两个文件;

    (11) 步骤11导入节点

            按顺序进入路径/home/ghpb-bin/node/data/keystore,将账户信息文件拷入keystore文件夹中;
    

    ​ 提示:如果没有权限进入这个目录,输入命令 chmod 777 /home/ghpb-bin -R,之后再重新进入.

    (12) 步骤12 新建账户

                输入*./ghpb* **--datadir** *node/data* **account new**,稍等片刻根据提示设置新账户的密码,重复输入后将返回新账户地址,用户需记录该地址;
    

    (13) 步骤13启动节点

    ​ 启动方式一:输入cd /home/ghpb-bin/进入ghpb-bin目录;

    ​ 继续输入

    1
    
    sudo ./ghpb --datadir node/data   --networkid 100 --port 3004 --syncmode full --nodetype synnode console;

    当出现“Welcome to the GHPB JavaScript console!”信息时,节点启动成功。

    提示:节点间测试带宽的端口号为本地ghpb端口号加100;开发节点防火墙中本地端口(如3004)必须打开,测试带宽端口可不打开,选择启动方式一时,如果用户退出远程服务器或者关掉终端,节点程序将停止运行。

    ​ 启动方式二:输入cd /home/ghpb-bin/进入ghpb-bin目录;

    继续输入

    1
    
    sudo nohup ./ghpb --datadir node/data --networkid 100  --verbosity 3 --syncmode full --rpc --rpcapi hpb,web3,admin,txpool,debug,personal,net,miner,prometheus  --nodetype synnode  &

    然后,按两次回车;

    提示:节点间测试带宽的端口号为本地ghpb端口号加100;开发节点防火墙中本地端口(默认为30303)必须打开,测试带宽端口可不打开,等待10s后继续输入命令:

    1
    
    sudo ./ghpb attach http://127.0.0.1:8545
    展开全文
  • 时间同步从机: #include <iostream> #include <cstdio> #include <unistd.h> #include <uavcan/uavcan.hpp> /* * Implementations for the standard application-level functions are ...
  • Zookeeper的节点操作,节点的信息

    千次阅读 2018-10-24 11:47:33
    ZK Shell使用(linux命令) zkCli.sh -server ip:port 连接对应的zk,ip表示zk的IP地址,port代表端口...ls,ls2 都是列出zk的节点,但是ls2列出的比较详细; create [-s] [-e] path data acl 创建节点;zk的...
  • Pi Network节点教程

    万次阅读 多人点赞 2021-01-08 00:58:57
        2020年3月31日(太平洋时间)Node软件的测试版上线此,版本号0.015。写下这篇文章时,版本号已更新至0.3.8。 Pi节点的安装设置过程稍复杂,在此做个总结。 2、Pi节点安装 2.1、操作系统 2.2、路由器设置 2.3、...
  • P2P网络及节点发现机制

    万次阅读 2019-04-13 08:35:11
    P2P网络及节点发现机制 1 分布式网络介绍 1.1 Kad网介绍 1.2 Kad网络节点距离 1.3 K桶 1.4 Kad通信协议 2 邻居节点 2.1 NodeTable类主要成员 2.2 邻居节点发现方法 2.3 邻居节点网络拓扑及刷新机制。 1 ...
  • 过程阶段一Impala集群的状态开始飘红,有节点不能正常使用。这时候发现集群里面有十多个任务正在运行,任务执行时间很长,情况非常不正常。看了一下sql的内容,有几个sql的确比较耗资源。阶段二此时,我先通知...
  • 光明小学可以抽象成一张有N个节点的图,每点间都有一条道路相连。光明小学的每个班都有M个学生,所以你要为他们设计出一条恰好经过M条边的路径。 光明小学的小朋友们希望全盘考虑所有的因素,所以你需要把任意点...
  •  在此之前,笔者写过一篇关于复杂网络中节点重要性评估方法的文章(http://blog.csdn.net/a_step_further/article/details/51176964),当时用spark实现过比较简单的方法。近期在业务应用中,又遇到需要对业务问题...
  • 1.什么是隐藏节点和暴露节点问题 (1)隐藏节点(隐终端) ...隐藏终端又可以分为隐发送终端和隐接收终端种。在单信道条件下,隐发送终端可以通过在发送数据报文前的控制报文握手来解决。但...
  • 10.个链表的第一个公共节点

    万次阅读 2020-04-18 17:32:07
    输入个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 暴力解法,时间复杂度为(m*n) /* struct ListNode { int val; struct...
  • 红黑树节点插入

    万次阅读 2019-11-12 15:02:19
    性质3 每个红色节点个子节点都是黑色。(从每个叶子到根的所有路径上不能有个连续的红色节点) 性质4. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。 性质5.每个叶节点是黑色的。 性质5是一...
  • 转载本文章请标明作者和出处 本文出自《Darwin的程序空间》 ...首先以图示例,图中有个链表相交与节点6,问公共节点是什么? 这道题第一个我的想法是使用哈希表(HashMap)来解决,我们可以首先找一...
  • 需要遍历两次树得到两个链表,每次时间复杂度O(n), 得到的两条路径的长度在最差情况下是O(n),通常情况下两条路径的长度是O(logn)。 整个程序的时间复杂度3O(n),空间复杂度是2O(n)。 #...
  • 如何判断个链表是否相交并找出第一个相交节点? ①相交的个单链表要么均有环,要么都没有环 ②一个有环的单链表和一个无环的单链表不可能相交 一、什么是链表相交? 二、怎么判断个链表是否相交? 三、怎么...
  • Polkadot验证节点的安全性和可用性

    万次阅读 2019-05-16 18:29:45
    在本文中,我将在验证节点的安全性和可用性方面讨论个主题。我知道,这里介绍的技巧仅仅涵盖了POS验证节点的“安全性和可用性”冰山一角。不过,我发现它们对于您的测试实例提供最小的安全性和可用性是有用的。 ...
  • Ubuntu下Ceph单节点和多节点安装小结

    万次阅读 2014-02-26 16:39:20
    Ubuntu下Ceph单节点和多节点安装小结 崔炳华 2014年2月26日 1 概述 Ceph是一个分布式文件系统,在维持POSIX兼容性的同时加入了复制和容错功能。Ceph最大的特点是分布式的元数据服务器,通过CRUSH(Controlled ...
  • 索引节点详解

    万次阅读 多人点赞 2018-05-09 14:27:44
    操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一性连续读取多个扇区,即一性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小...
  • Jenkins主从节点配置

    千次阅读 2017-12-01 17:16:30
    jenkins支持主从模式,这将会把构建任务分发到多个从节点去执行,这样就可以支撑起多个项目的大量构建任务,同时,你可以提供多种...本文档将针对配置 ubuntu 从节点进行图文介绍,希望可以减少读者试错浪费的时间
  • LCA-最小公共父节点

    千次阅读 2015-07-19 10:37:22
    有一个普通二叉树,AB分别为个子节点,求AB最近(深度最浅)的公共父节点。 此题仍然是一个老题,有着多种解决方法,本文针对其中三种方法来进行分析总结。 这三种方法分别是:递归法,tarjan离线算法,RMQ在线...
  • Ext Tree新增节点

    千次阅读 2012-07-21 22:33:37
    天做Ext Tree新增节点时花了好长时间才成功在树上增加了新节点,现把Ext Tree新增节点的过程记录下来,作为记念。 1、 创建目录结构如下 2、 然后分别创建控制器、model、store、view文件,完成之后文件...
  • 通过kubeadm搭建kubernetes集群环境,加入node节点,部署应用进行体验
  • TinyXml查找唯一节点及修改节点操作

    万次阅读 2012-10-17 23:22:13
    // 读者对象:对TinyXml有一定了解的人。本文是对TinyXml工具的一些知识点的理解。 // 1 TinyXml中对TiXmlNode进行了...// DOCUMENT, 文档节点 // ELEMENT, 元素节点 // COMMENT, 还没弄清楚 // UNKNOWN, 未知节点 //
  • Activiti工作流节点的自由跳转

    千次阅读 2016-04-18 17:29:09
    直接手动调用SqlSession的操作,感觉会漏掉一些重要的初始化操作(如:启动新节点之后加载其用户授权策略,等);只有往前(往已执行过的节点)跳转的功能,没有往后节点(往还没有执行的节点)跳转的功能;新任务...
  • 双向链表的节点交换

    千次阅读 2019-09-19 17:25:28
    天关于双向链表的节点的交换,用了很长的时间去学习,理解,敲了好多,总是达不到效果,就是能想明白,但是在写的时候不是出现这样就是那样的问题,最后参照另外一位CSDN博主的帖子,才写出一个完整的函数, ...
  • 虚幻引擎4蓝图节点

    千次阅读 多人点赞 2020-04-13 19:09:32
    收集一些自己了解的蓝图节点,以便更好地学习。
  • 计算单链表的节点

    千次阅读 2013-05-17 18:12:43
    给定一个单链表,它可能包含环,也可能不包含环。环可能从节点头开始,也可能不是。计算单链表的节点数。 ...2.hare一移动步,乌龟一移动一步,直到个指针相等,或者hare指针指向NULL。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 583,306
精华内容 233,322
关键字:

两次重要的时间节点