제안서(Proposal) » 이력 » 버전 1
이름없음, 2021/05/25 07:52
1 | 1 | 이름없음 | h1. 제안서(Proposal) |
---|---|---|---|
2 | |||
3 | |_. key |
||
4 | |_. type |
||
5 | |_. note |
||
6 | |_. description |
||
7 | | |
||
8 | | ProposalID | string | | 해당 제안서의 식별자 | |
||
9 | | Owner | string | | 해당 제안서의 등록자 | |
||
10 | | Category | int[] | >0 | 수집할 개인정보 카테고리 목록"수집 개인정보":https://snplab.synology.me/confluence/pages/viewpage.action?pageId=27558064<notextile></notextile> 참조*모든 양의 정수 사용 가능하며, 블록체인에서는 검증하지 않음* | |
||
11 | | Purpose | int | | 제안서 사용 목적0: 타겟 마케팅(Target Marketing)1: 예측 마케팅(Predictive Marketing)*100: 데이터 거래*997: 추첨(sortilege)998: 이벤트2(999와 분리)999: 이벤트1000: LDP | |
||
12 | | Filter | string | | 제안서 대상 필터 |
||
13 | | |
||
14 | | *Condition* | *string* | | *제안서 동의 필터* |
||
15 | | |
||
16 | | NotBefore | string | rfc3339 | 제안서의 유효기간 시작 일시 | |
||
17 | | NotAfter | string | rfc3339 | 제안서의 유효기간 종료 일시 | |
||
18 | | MaxIssuable | int | >0 | 제안서을 통해 등록할 수 있는 최대 티켓 수 | |
||
19 | | Duration | string | duration or rfc3339 | *제안서을 통해 발행한 티켓의 유효 기간. 최대 주단위로 설정할 수 있다. 자세한 사용법은 아래 링크를 참고한다.**"time.duration in golang":https://golang.org/pkg/time/#Duration**위 링크에서 정의된 h(시간) 외에 추가 단위로 아래와 같은 단위를 제공한다. (Month는 명확하지 않으므로 절대 시간 사용 권장)* |
||
20 | * *d : 일(24시간)* |
||
21 | * *w: 주(7일)* |
||
22 | * *M: 월(30일)* |
||
23 | *상대적인 주기가 아니라 절대 시간을 duration으로 하고자 한다면 rfc3339 규격에 맞춘 문자열을 설정할 수 있다.**계산 시작점은 TicketValidFrom이 설정되어 있을 경우 TicketValidFrom부터 계산하며,**TicketValidFrom이 존재하지 않을 경우 현재 시간(fabric transaction의 timestamp)부터 계산한다.* | |
||
24 | | ImageURL | string[] | optionaltagged-url | 제안서을 보여줄 때 사용할 이미지들의 URL | |
||
25 | | CreatedAt | string | rfc3339 | 제안서 등록 일시 | |
||
26 | | RevokedAt | string | optional, rfc3339 | 제안서 폐기 일시 | |
||
27 | | UpdatedAt | string | rfc3339index | 제안서 변경 일시등록, 활성화, 파기 등 모든 변경 케이스에 대한 시간 반영 | |
||
28 | | Status | int | | 제안서 상태0: 정상 (활성화됨)1: 활성화 전2: 폐기됨3. 만료됨4. 사용완료 (MaxIssuable만큼 티켓이 발행됨)5. 기타 무효 상태(예비) | |
||
29 | | Content | json object | untyped | 티켓이 참고할 내용 (개인정보 전달 경로, LDP 정보 등) | |
||
30 | | RewardPolicy | json object(RewardPolicy) | typed | 리워드 지급 기준RewardPolicy.Type: 지급 유형 |
||
31 | * 1: 티켓 소모 완료 시 |
||
32 | * 2: 티켓 소모 시마다 |
||
33 | *RewardPolicy.Amount: 한 티켓으로 지급할 수 있는 최대 금액* |
||
34 | * *데이터 단가 계산 식 : rewardPolicy.Amount / (consumePolicy.Count * consumePolicy.MaxDataCount)* |
||
35 | | |
||
36 | | ConsumePolicy | json object(ConsumePolicy) | typed | 티켓 소모(사용) 기준ConsumePolicy.Type: 소모 유형 |
||
37 | * 1: 요청자(proposal.Owner)에 의해 소모 |
||
38 | * 2: 티켓 발행자 자가소모(ticket.Owner) |
||
39 | ConsumePolicy.Count: 소모 횟수*ConsumePolicy.Period: 소모 주기**ConsumePolicy.MaxDataCount: 1회 소모 시 수집 가능한 데이터 총량**1 consume당 지급 리워드 계산 식: *<notextile></notextile><notextile></notextile>*min(1, (consumeContext.DataCount / consumePolicy.MaxDataCount) ) / consumePolicy.Count * rewardPolicy.Amount* | |
||
40 | | Description | string[] | optional | 제안서을 보여줄 때 사용할 목적별 문구들 | |
||
41 | | Deposit | string | optional | Activate를 위해 deposit한 TokenID |
||
42 | | |
||
43 | | Reserved | json object | optional, untyped | 예비 | |
||
44 | | BindMap | BindMap | optional | 블록체인 내부 관리용 정보. 표시되지 않을 수 있으며,표시되어도 블록체인 외부에서는 사용하지 않는다. | |
||
45 | | DisallowMultiIssue | bool | optional | true로 설정될 경우 동일 DID로 중복 issue를 허용하지 않는다.기본값 false (중복 issue 허용) | |
||
46 | | *TicketValidFrom* | *string* | *rfc3339,optional* | *티켓 유효기간 시작 시각. 미설정시 즉시 시작* | |
||
47 | |||
48 | h2(auto-cursor-target#Proposal-리워드지급기준). 리워드 지급 기준 |
||
49 | |||
50 | RewardPolicy |
||
51 | |||
52 | |_. key |
||
53 | |_. type |
||
54 | |_. note |
||
55 | |_. description |
||
56 | | |
||
57 | | Type | int | | 지급 유형 |
||
58 | * 1: 티켓 소모 완료 시 |
||
59 | * 2: 티켓 소모 시마다 |
||
60 | | |
||
61 | | Amount | int | >=0 | 티켓의 지급 가능 총량 | |
||
62 | |||
63 | h2(#Proposal-티켓소모기준). 티켓 소모 기준 |
||
64 | |||
65 | ConsumePolicy |
||
66 | |||
67 | |_. key |
||
68 | |_. type |
||
69 | |_. note |
||
70 | |_. description |
||
71 | | |
||
72 | | Type | int | | 소모 유형 |
||
73 | * 1: 요청자(proposal.Owner)에 의해 소모 |
||
74 | * 2: 티켓 발행자 자가소모(ticket.Owner) |
||
75 | | |
||
76 | | Count | int | >0 | 소모 허용 횟수 | |
||
77 | | *Period* | *string* | *duration,optional* | *소모 주기(소모 간 최소 간격)* |
||
78 | * *현재 일단위만 지원 (예: 하루 1번일 경우 1d로 지정)* |
||
79 | *없을 경우 주기 체크하지 않음* | |
||
80 | | *MaxDataCount* | *int* | *>0, optional* | *consume시 최대 데이터 소모 수* | |
||
81 | |||
82 | *an example of a LDP template* |
||
83 | |||
84 | | @{@ |
||
85 | @"ProposalID"@ @:@ @""@ @,@ |
||
86 | @"Owner"@ @:@ @""@ @,@ |
||
87 | @"Category"@ @:[@ |
||
88 | @4,@ |
||
89 | @1,@ |
||
90 | @2@ |
||
91 | @],@ |
||
92 | @"Purpose"@ @:0,@ |
||
93 | @"Filter"@ @:@ @"*"@ @,@ |
||
94 | @"NotBefore"@ @:@ @"2020-12-14T14:37:43+09:00"@ @,@ |
||
95 | @"NotAfter"@ @:@ @"2020-12-24T15:37:43+09:00"@ @,@ |
||
96 | @"MaxIssuable"@ @:3,@ |
||
97 | @"Duration"@ @:@ @"2020-12-24T15:37:43+09:00"@ @,@ |
||
98 | @"ImageURL"@ @:[@ |
||
99 | @"icon= https://cdn.snplab.io/images/snplab.png "@ @,@ |
||
100 | @"background= https://cdn.snplab.io/images/commonwallpaper.png "@ |
||
101 | @],@ |
||
102 | @"Content"@ @:{@ |
||
103 | @"endpoint"@ @:@ @"firebase url"@ @,@ |
||
104 | @"isItReal"@ @:@ @false@ @,@ |
||
105 | @"key"@ @:@ @"somewhat"@ @,@ |
||
106 | @"range"@ @:[@ |
||
107 | @"0"@ @,@ |
||
108 | @"0.25"@ @,@ |
||
109 | @"0.50"@ @,@ |
||
110 | @"0.75"@ @,@ |
||
111 | @"1"@ |
||
112 | @],@ |
||
113 | @"spinner"@ @:0.1@ |
||
114 | @},@ |
||
115 | @"RewardPolicy"@ @:{@ |
||
116 | @"Type"@ @:1,@ |
||
117 | @"Amount"@ @:0@ |
||
118 | @},@ |
||
119 | @"ConsumePolicy"@ @:{@ |
||
120 | @"Type"@ @:2,@ |
||
121 | @"Count"@ @:1@ |
||
122 | @},@ |
||
123 | @"Description"@ @:[@ |
||
124 | @"title=\"TEST LDP\""@ @,@ |
||
125 | @"disclaimer=\"blahblah\""@ |
||
126 | @],@ |
||
127 | @"DisallowMultiIssue"@ @:@ @true@ |
||
128 | @}@ |
||
129 | | |