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