# Semipermanode note
## Definition
From the #tangle-math discord channel on 20–11–2018:
> Serguei Popov [IF]11/20/2018: Let me call it “semipermanode problem”. It is of course difficult to store all the transaction since the beginning, since it requires a lot of space. On the other hand, many of those transactions need not be stored, because they are almost/completely useless (e.g. spam). Assume that you want to store only a specific set of transactions: say, the historical data from the temperature sensors captured in the center of Munich (which is of course important and needs to be stored forever since you believe that many people or entities will need it in the future). To prove that that data is genuine, you don’t need to store the whole Tangle; you just need a connected (to the “present time”) subgraph of the Tangle which contains the transactions of the interest. So, question: how to efficiently build-and-maintain connected subgraphs which contain “interesting” information? Also, we may need to have some “quick time-traversing chains” (so that it’s possible to go “quickly” to the past along them), but those can be issued by the semipermanode owners. And, the semipermanodes can charge something for access to the data. “In Bitcoin, you pay for transactions, but accessing the ledger is free. In IOTA, the transactions are free, but you may have to pay for accessing the ledger (in case you don’t want to store it yourself)” — this looks as a reasonable general principle.
- snapshot

- how to verify data after snapshot

- 你可以刪除所有不相干的 path (DB size 可大大縮小)
- 你只需要保持 yellow ball 這條 path 的「活性」
- yellow ball 在 snapshot (without prune)後會被分離
- 必須要定期發 transaction 去 confirm 這條 path
## 實驗
1. 架設一個不啟用 prune 的 permanode
2. 發送一個交易 A
3. 定期發 issue 去 confirm A path
4. 用 [API](https://github.com/iotaledger/iri/blob/dev/src/main/java/com/iota/iri/service/API.java#L769) 檢查 A 的活性 (get)
5. 刪除 old Tangle A path 以外的所有交易
## Permanode design discussion
https://docs.google.com/document/d/1cnXv8-aUigxgXpc0aX_WIfq_KEY2REouoreEMPtpOH0/edit
## Reference
- [The 5th Cohort of IOTA Ecosystem Development Fund Grantees](https://www.iotachina.com/go?url=https://blog.iota.org/the-5th-cohort-of-iota-ecosystem-development-fund-grantees-5cbf05227525)
- [Traditional Chinese translation - 第 5 屆 IOTA 生態系統發展基金受贈人](https://www.iotachina.com/di-5-iota-shengxizhanjijinshouren.html)
- [IOTA Meets Couchbase](https://medium.com/coinmonks/iota-meets-couchbase-92cafe5eded2)
- [Traditional Chinese translation - IOTA Meets Couchbase (正體中文)](https://hackmd.io/zTXFc8B9QRC0vz_xU_KvPw)
- [Tangle Pathway](https://medium.com/coinmonks/tangle-pathway-58fb13e19eff)
- [Traditional Chinese translation - Tangle Pathway (正體中文)](https://hackmd.io/dlGyUcbWRpat-SqqHo55XQ)
- [Olaf van Wijk’s permanode solution](https://hackmd.io/Sy2_DFyiSjqh8kPof4j97g?view)
- [How to verify a transactions sent by permanodes?](https://iota.stackexchange.com/questions/1920/how-to-verify-a-transactions-sent-by-permanodes/1922#1922)
- [[Start 38:40] 5th IOTA Blockchain Meet-up at Lisk Utrecht 2019 - Selective Permanode](https://youtu.be/giatJB-j2pE?t=2002)
- 
- 
- 
- 
## Test Transaction
- V9ZNLJAJXZANLHJSSZEZXOVJEFXKBDOFQCOFXRYLUJPTQHBUBAAJEGSXKHDHEZ9OSTJTCFWZUBZCLYH9X
- SVFIXHOIRUI9WBJYUUYPXCPCGJGRQTXBC9LFUQKWHHRKXZTARFQJQ9XJBYGDACGDYDOAIJCXOPGWSWXWC