FEIP28V1_Team(en-US)



  • FEIP28: Team
    Version: 1
    Language: en-US
    Author: C_armX, Deisler-JJ_Sboy
    Status: draft
    Created date: 2021-05-01
    Last modified date:2021-05-01
    File hash: ""
    TXid: 
    

    FEIP28V1_Team(en-US)

    Contents

    Introduction

    General rules of FEIP type protocols

    Rules specific to this protocol

    Create a team

    Disband a team

    Update team consensus or description

    Apply to join in a team

    Quit a team

    Accept the new consensus

    Add members

    Delist members

    Authorize

    Deauthorize

    Introduction

    Protocol type: FEIP
    Serial number: 28
    Protocol name: Team
    Version: 1
    Description :  组建和管理一个团队
    Author: C_armX, Deisler-JJ_Sboy
    Language: en-US
    Tags: FEIP, team, application protocol
    Previous version hash:""
    

    General rules of FEIP type protocols

    1. Write important data in OP_RETURN for public witness under FEIP type protocols

    2. The max size of OP_RETURN : 4096 bytes

    3. Format : compacted json

    4. Encoding : utf-8

    Rules specific to this protocol

    1. 任何cid,可以声明自己是一个团队,并发布团队的共识,由此成为tid。
    2. tid是cid的一个子集。
    3. tid也是团队的名称。
    4. tid可以解散自己,也可以更新共识或描述
    5. 团队的组织规则在共识中约定。
    6. 任何cid,可以向某tid发起加入申请,申请时需理解并签名认同该团队的共识。
    7. tid可以授权特定成员代为执行特定操作。
    8. tid或获得其授权者可以批准加入申请添加团队成员,或直接除名团队成员

    Create a team

    由tid发送一笔交易,输出地址为本tid地址
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 6 operation: "create" Y
    8 data.consHash string 1-32 sha256 value of the team consensus Y
    9 data.desc string 1-2048 Description of this team Y

    Example of creating a team

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "create",
            "consHash": "1111111111122222222223333333333333334444444445555555555666666",
            "desc": "This is a test Team"
        }
    }
    

    Disband a team

    由tid发送一笔交易,输出地址为本tid地址。
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 7 operation: "disband" Y

    Example of disbanding a team

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "disband"
        }
    }
    

    Update team consensus or description

    由tid发送一笔交易,输入与输出均为本tid地址。
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 6 operation: "update" Y
    8 data.consHash string 1-32 sha256 value of the team consensus Y
    9 data.desc string 1-2048 Description of this team Y

    Example of updating a team

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "update",
            "consHash": "1111111111122222222223333333333333334444444445555555555666666",
            "desc": "New description for the test Team"
        }
    }
    

    Apply to join in a team

    由申请者向tid发送一笔交易。输出地址必须与“team”值一致。
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 4 operation: "join" Y
    8 data.consHash string 1-32 sha256 value of the team consensus Y

    Example of appling to join in a team

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "join",
            "consHash": "1111111111122222222223333333333333334444444445555555555666666"
        }
    }
    

    Quit a team

    由退出者发送一笔交易,第一个输入为退出者地址,第一个输出为想要退出的tid地址。
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 4 operation: "quit" Y

    Example of appling to join in a team

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "quit"
        }
    }
    

    Accept the new consensus

    团队成员给tid发送一笔交易,第一个输入为成员地址,第一个输出为所在tid地址。
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 6 operation: "accept" Y
    8 data.consHash string 1-32 the sha256 value of the new team consensus Y
    9 data.consTxid string 1-32 the txid of updating consensus Y

    Example of accepting new consensus

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "accept",
            "consHash": "1111111111122222222223333333333333334444444445555555555666666",
            "consTxid": "6666666666666666555555555444444444443333333333222222211111111"
        }
    }
    

    Add members

    tid或被授权者发送一笔交易给申请加入者们的地址。输出地址与addList一致,找零地址为第一个输入地址。
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 3 operation: "add" Y
    8 data.addList string array 1024 Addresses of the applicant Y
    9 data.joinTxid string array 1048 Txids of the applications to join the team<br>One-to-one correspondence with the addresses in addList Y

    Example of adding members

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "add",
            "addList": [
    			"FCfcQA9VaCGNDoz3QqneMcFC8jTj3Cuuxc",
    			"FCG7ohMm8xZmhPEpE8Eni2ghiZT5ha9iJw",
    			"FFcY22BH2nyamDLdFWaDGwtKej9KdCKb51"
    		],
            "joinTxid": [
    			"1111111111122222222223333333333333334444444445555555555666666",
    			"1111111111122222222223333333333333334444444445555555555666667",
    			"1111111111122222222223333333333333334444444445555555555666668"
    		]
        }
    }
    

    Delist members

    tid或被授权者给被除名的所有地址发送交易。输出地址与deliList一致,找零地址为第一个输入地址。
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 6 operation: "delist" Y
    8 data.deliList string array 3096 Addresses to be delisted Y

    Example of delist members

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "delist",
            "deliList": [
    			"FCfcQA9VaCGNDoz3QqneMcFC8jTj3Cuuxc",
    			"FCG7ohMm8xZmhPEpE8Eni2ghiZT5ha9iJw",
    			"FFcY22BH2nyamDLdFWaDGwtKej9KdCKb51"
    		]
        }
    }
    

    Authorize

    tid向若干成员发送交易,授权其代理执行指定操作。输出地址与AuthList一致,找零地址为第一个输入地址。
    只有“add”和“delist”可被授权。
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 10 operation: "authorize" Y
    8 data.authOps string array 3 or 6 "add" or “delist” or both Y
    9 data.authList string array 512 the list of addresses being authorized Y

    Example of Authorize

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "authorize",
            "authOps": ["add","delist"],
            "authList": [
    			"FCfcQA9VaCGNDoz3QqneMcFC8jTj3Cuuxc",
    			"FCG7ohMm8xZmhPEpE8Eni2ghiZT5ha9iJw",
    			"FFcY22BH2nyamDLdFWaDGwtKej9KdCKb51"
    		]
        }
    }
    

    Deauthorize

    tid向若干成员发送交易,取消对其所做的所有授权。输出地址与DeauList一致,找零地址为第一个输入地址。
    op_return内容为:

    field number field name type length content required
    1 type String 4 Fixed: "FEIP"<br>Case insensitive Y
    2 sn int 2 Serial number<br>Fixed: 28 Y
    3 ver int 1 Fixed: 1 Y
    4 name String 4 Fixed: "Team"<br>Case insensitive N
    5 hash hex 32 Sha256 value of this protocol file N
    6 data.team string 34 the address of the team Y
    7 data.op string 12 operation: "deauthorize" Y
    8 data.deauList string array 512 the list of addresses being deauthorized Y

    Example of Deauthorize

    {
        "type": "FEIP",
        "sn": 28,
        "ver": 1,
        "name": "Team",
        "hash": "",
        "data":{
            "team": "F111111111112222222222222",
            "op": "deauthorize",
            "deauList": [
    			"FCfcQA9VaCGNDoz3QqneMcFC8jTj3Cuuxc",
    			"FCG7ohMm8xZmhPEpE8Eni2ghiZT5ha9iJw",
    			"FFcY22BH2nyamDLdFWaDGwtKej9KdCKb51"
    		]
        }
    }
    

Log in to reply