From 6dfde30d33280f08fe550725970273249b667176 Mon Sep 17 00:00:00 2001
From: Dmitry Puzyrkov <dmitry.puzyrkov@demlabs.net>
Date: Wed, 19 Jul 2023 13:57:33 +0000
Subject: [PATCH] Feature kelvpn configs

---
 .travis.yml                               |  47 ----------------------
 cfg.python.wrapper.in                     |  10 -----
 dist/etc/network/KelVPN/chain-0.cfg       |  31 ++++++++++++++
 dist/etc/network/KelVPN/main.cfg          |  23 +++++++++++
 dist/share/ca/kelvpn.master.0.pub.dcert   | Bin 0 -> 1285 bytes
 dist/share/ca/kelvpn.master.1.pub.dcert   | Bin 0 -> 1285 bytes
 dist/share/ca/kelvpn.master.2.pub.dcert   | Bin 0 -> 1285 bytes
 dist/share/ca/kelvpn.root.0.dcert         | Bin 0 -> 1285 bytes
 dist/share/ca/kelvpn.root.1.dcert         | Bin 0 -> 1285 bytes
 dist/share/ca/kelvpn.root.2.dcert         | Bin 0 -> 1285 bytes
 dist/share/configs/network/KelVPN.cfg.tpl |  32 +++++++++++++++
 os/debian/config                          |   9 +++++
 os/debian/postinst                        |  32 ++++++++++++++-
 os/debian/templates                       |  24 ++++++++++-
 version.mk                                |   2 +-
 15 files changed, 149 insertions(+), 61 deletions(-)
 delete mode 100644 .travis.yml
 delete mode 100644 cfg.python.wrapper.in
 create mode 100644 dist/etc/network/KelVPN/chain-0.cfg
 create mode 100644 dist/etc/network/KelVPN/main.cfg
 create mode 100644 dist/share/ca/kelvpn.master.0.pub.dcert
 create mode 100644 dist/share/ca/kelvpn.master.1.pub.dcert
 create mode 100644 dist/share/ca/kelvpn.master.2.pub.dcert
 create mode 100644 dist/share/ca/kelvpn.root.0.dcert
 create mode 100644 dist/share/ca/kelvpn.root.1.dcert
 create mode 100644 dist/share/ca/kelvpn.root.2.dcert
 create mode 100644 dist/share/configs/network/KelVPN.cfg.tpl

diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 7bccc56d4..000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-sudo: required
-language: c
-compiler: gcc
-dist: xenial
-notifications:
-  email: false
-
-before_install:
-    - git submodule init
-    - git submodule update
-    - cd cellframe-sdk
-    - git submodule init
-    - git submodule update
-    - cd ..
-
-script:
-    - mkdir build
-    - cd build
-    - cmake -DBUILD_CELLFRAME_NODE_TESTS=ON ../
-    - make
-    - ctest
-    - cpack
-    - sudo dpkg -i *.deb
-    - ls -laR /opt/cellframe-node
-    - sudo /opt/cellframe-node/bin/cellframe-node-tool cert create cert0 sig_tesla
-    - sudo service cellframe-node start
-    - sudo systemctl status cellframe-node
-    - sudo /opt/cellframe-node/bin/cellframe-node-cli wallet new -w wallet0
-    - sudo /opt/cellframe-node/bin/cellframe-node-cli token_decl -net private -chain gdb token TOK1 total_supply 1000000000000000000000000 signs_total 1 signs_emission 1 certs cert0
-    - sudo /opt/cellframe-node/bin/cellframe-node-cli token_emit -net private -chain_emission gdb -chain_base_tx gdb -addr $(sudo /opt/cellframe-node/bin/cellframe-node-cli wallet list| grep addr | awk '{print $2}' |tr -d "\n") -token TOK1 -certs cert0 -emission_value 123000000000000
-    - sudo /opt/cellframe-node/bin/cellframe-node-cli mempool_proc -net private -chain gdb
-addons:
-  apt:
-    sources:
-    - ubuntu-toolchain-r-test
-    packages:
-    - libjson-c-dev
-    - libev-dev
-    - libmagic-dev
-    - libldb-dev
-    - libtevent-dev
-    - libcurl4-gnutls-dev
-    - debconf-utils
-    - dconf-cli
-    - pv
-    - libpython3-dev
-
diff --git a/cfg.python.wrapper.in b/cfg.python.wrapper.in
deleted file mode 100644
index 2c35ca1cf..000000000
--- a/cfg.python.wrapper.in
+++ /dev/null
@@ -1,10 +0,0 @@
-export CC="@CMAKE_C_COMPILER@"
-export CXX="@CMAKE_CXX_COMPILER@"
-
-export CFLAGS="@WRP_CFLAGS@ @CCOPT_SYSTEM@"
-export CPPFLAGS="@WRP_CPPFLAGS@ @CCOPT_SYSTEM@"
-export LDFLAGS="@WRP_LDFLAGS@ @LDOPT_SYSTEM@"
-
-#export LINKFORSHARED=" "
-
-eval "$*"
diff --git a/dist/etc/network/KelVPN/chain-0.cfg b/dist/etc/network/KelVPN/chain-0.cfg
new file mode 100644
index 000000000..243032567
--- /dev/null
+++ b/dist/etc/network/KelVPN/chain-0.cfg
@@ -0,0 +1,31 @@
+[chain]
+id=0x0000000000000000
+shard_id=0x0000000000000000
+name=zerochain
+load_priority=0
+# Possible values [token, emission, transaction, ca, decree, anchor]
+datum_types=[token,emission,ca,decree,custom]
+default_datum_types=[token,emission,ca,decree, custom]
+mempool_auto_types=[]
+consensus=dag_poa
+
+[files]
+storage_dir=../../../var/lib/network/kelvpn/zerochain/
+
+[dag]
+is_single_line=true
+is_celled=false
+is_add_directly=false
+datum_add_hashes_count=1
+
+is_static_genesis_event=true
+static_genesis_event=0xD2A07ED06264795F2E2ABEFDD2E3729B0B03413D24F7571EC040424D0BCE3261
+
+[dag-poa]
+auth_certs_prefix=kelvpn.root
+auth_certs_number=3
+auth_certs_number_verify=2
+confirmations_timeout=15
+wait_sync_before_complete=120
+auto_confirmation=true
+auto_round_complete=true
diff --git a/dist/etc/network/KelVPN/main.cfg b/dist/etc/network/KelVPN/main.cfg
new file mode 100644
index 000000000..5d333ad70
--- /dev/null
+++ b/dist/etc/network/KelVPN/main.cfg
@@ -0,0 +1,23 @@
+[chain]
+id=0x0000000000000001
+shard_id=0x0000000000000000
+name=main
+load_priority=1
+# Possible values [token, emission, transaction, ca, decree, anchor]
+datum_types=[transaction,anchor]
+default_datum_types=[transaction, anchor]
+mempool_auto_types=[all]
+consensus=esbocs
+
+[files]
+storage_dir=../../../var/lib/network/kelvpn/main/
+
+[blocks]
+is_celled=false
+
+[esbocs]
+consensus_debug=true
+min_validators_count=1
+auth_certs_prefix=kelvpn.master
+validators_addrs=[1807::2023::0001::0000]
+new_round_delay=30
\ No newline at end of file
diff --git a/dist/share/ca/kelvpn.master.0.pub.dcert b/dist/share/ca/kelvpn.master.0.pub.dcert
new file mode 100644
index 0000000000000000000000000000000000000000..47157962f6a4cec1a63ead641d595f48836607b3
GIT binary patch
literal 1285
zcmV+g1^W7clj0Fa3@{G?0002+0s#O3tONi6000000000000000000000000000000
z00000Yh`S9aBePbVRLk4axO3~aCKq;0000000000000000000000000tONi600000
z0RR912q&uFIq*Q2WsV>E!HlqSjae=rygHFzwh$lN=g};&2yHY?1t*q-_h^fcd|M1}
z=r)n^72(%nxRAKfOxIF^TNE^H+BI7_pIj&RV~Fcrqs0hG)Lc~LYs<I}0mSosir5T_
zmwGXlERKAv3W%-0Qxrqt|FOBeA!ahQn&6Ah*bHyX12#o_Hc%eiPG2IhfcaGP7r=5U
zejuC>*!2$|I;MV{cmG~kX_iv@XaczvPg@HgTI~j~dvK;g-XPg65vU~!`$5W4rEBVJ
ziNyn6#>4P`s3CFP1genUy0brOu{1b3mSM8(3H+g?&a(xdTi|GJ)0Di4wvraybfaah
zLdyA)ut#nx%}*kWrLwz3n<Q!AQ?|XPVKJAb&SMfvk9S+Vc~>>KXYgmpNK{JHw=1xF
zavi3B5IPrioouBwa-Jba3^9K39jCpRh(3k{Q<qXLl#tswKZXIVQ}V@_{+T7b=@P5;
zcr8ff#n2UMf*p{Xb~FE%8vsdPGs1~I`GUL7$>KO`w$RB(45YnaC0V>k^n+wj^W(Na
zXsnmS$?!wC<bqx4MI)9EJ9XI}G@n>X5l6#_T3zMll7K4zsu92+)Bp}u&P92+P)M76
zEX*JFsNn(TdY9NIpFNys7b+qaGi+Ja%2nPNW_rc9Wu%*rQ9BuwZF#)>>^E#NTTT`X
zD&pFWXnlCO#BR?8x#lkWbrPJF9p6@NHwOc0_J{0VoTx791mZ!jiKwana})70Jo0b|
z2#)pAJ?PmmerxVU4ie#bo2keR*$Xeez>`Mg!Uc4zD-;LRasxvVZ<K=KNtS}8xKyt!
zqW13YJ%SKr9qpF+^et-xaK@5B^4o!^_uFmxKroCxeB{VgrXx%o+foB3IojrLPz{kd
z9HBaFePEa4gG>J%M!(*{nu4T2Sqyeh9Gn0pc+jquSjn3Y;h3g+X!K^5;Hnr=Oo@0k
z)QRvyMR?XDkx5xppn1f-;>qOyNF@fF(klZDuvx|@yeC;4W%sk*Esy2#P#lywOd-pG
z9#t9G$<oHy{{|!YbfTSXUz0VT)<?E~vI8!<`oM*1R3-e&4R1}r`!LjwDl!2yHvP7T
zG=wLtSyLld;MtM+YvF;Zthq5u0_|8WX}RM06-;7`fndeUZ}0M1S&hmoF~C88*NKKM
zTl=mG{JKx02-+?opZGZ$e4b54+b!xfkDJRG;h{oJStfnOu3)u=6s%fAOq%!CP`DC_
zL?c^9@rpN`gsWGN>o~9BDJmg6<;%#3gO!#-nXEv5FIXp#OHT3Uqr$hY?SX?XaXy9X
z2Cyfr)8-7<^C<m94yT_U&toj08<UCWKgzxYg#k~loLjue_4SggyGlTVtQ%=WKir@I
zPfQKdy(HgaKKk%g3^5^!*oA8oxlcN^K^R4v68!O|@*{qclO8SXGSjKUYqaX(z}-?w
z4x#>kGe$>8C8ML+!ndUzQM9v8gP%h&<1{P{S%vpgi>GiO=X&;?YM|LgFoaacmclBE
vHnoLed1Cr;N3@akM3d{UEC%6#&jzvGC=*7`ZB3o`=g5!p2=^HG0V)ukL-<uo

literal 0
HcmV?d00001

diff --git a/dist/share/ca/kelvpn.master.1.pub.dcert b/dist/share/ca/kelvpn.master.1.pub.dcert
new file mode 100644
index 0000000000000000000000000000000000000000..381494d65b94db4dd0f3aa5e58f80983c00614ce
GIT binary patch
literal 1285
zcmV+g1^W7clj0Fa3@{G?0002+0s#O3tONi6000000000000000000000000000000
z00000Yh`S9aBePbVRLk4axO70aCKq;0000000000000000000000000tONi600000
z0RR91E9f+#*&_UMd14u?S-;NCt~!Nolc}ZvZ!}B3s6>@E>-#t+B`s5<9|D$-o{z#-
z>-<m{1n=$e*>dGp#a?{(FEK#$wAIhwdXg$7+(>pW3#R?`<rgnnI>%Ll@~90Hi;H6&
zYiV+cm+<CkU>#<9Hs4_uPy|~fnDfYpUp1YDw3L6Af+|Pm%=2Tu+grs&n%(+SEp!O6
z8aMAw(4TrFSwyKsl`ZCVYleCjFbLQW|N5gj!|VP$7BU1p<0;a^lo)r|z<-Q)y*%ka
zum&{gFk9s3C)C8Rg!)v&C}bZPB7pkb84gb-JJ0&EaqM;q<;Q(ZLueCYpa2?QJJ!qy
ze8T@$Su{XRZGTL`%9$yzBO4nr@*JNxPfnzL5Igx^kxr<&0rDK9yub3V+eO|2D2KUE
z__pyZ^3FmaVtT6y+-gF|KZw6fj#^Uo1?^Bt$P0s&lw0oaiD#o1T|6B7*BXDvMjhRb
zu_zad2Q_qcCCa4kT*Vljmie?DqScRh^7a8`IUl$TpMabumDJ(Mk+rD8xetd3O%k$y
zf{0Lw@FOz_?zsT;)$U}<rwm44Kp&#y?c#|4pWanGRenDu2!-Tio!mPddZEB$6uA^N
zV`zbPY!Am+MS|Krt)d!G>e@y&9*apg2-boe>S0>@^#ojl?zQcBklvuL%{Mw%f52#e
zM=UpGaIonhWrBmme&)k~@-b79D`iu44j%cYOZ&zY6bW$OLhvUxW$MSDxR82yPTexU
z#o78-X2=disjVq?OxP9LC(EaAHqfn8>HPK(v5OvG=~w$vJVa;Vg{x2-bVxJ#``?S9
zE2=(;`CaP&%}i=|)k^1#cN5k*)TiRBXIxp~DdP+;9GT0%5Hrfr6=8fq_M)(Bm=0^>
zt;hK%<XbapqF+xjTK@P2$$%N@fSShELLYj(njRkkuKVNkt)0>TA9iB%FP_)oc@WU`
zNHt(2Mp5xb|6}$6VS6f?a<D&Wz=Rh1oru9ZX+l^l&H4M%tLQb@ud|NTMJjB&du^4~
z)4trN2QCQnLzU#kJrP$`OkeR_^Xf4RH#M&yCa%qr;+yw2ak+q}xxhhFSNnuPHVOFa
ze(-78^E5;hRl@JCjYo7Ura<ENw{vLo8`)MZZzZYu<G7u4J)PFGWNtyjaJMGretf5Z
zJ3#|8_M_W*`vtD3QsTHQu<0i7X<+^U8`o+|$5mh_4Syp85eHurdb$GT;^;47IQ~ax
z9wRi2j;xlD$^(O{!}-d+#w<uTE*GCrgB!o+J70Ye{okrr2eVV=apT~Tqf<*nxwb1i
zNRrZ^@!-5DhJZGzhqy{c*W=b!W;b|c`ww~Bj!4*XYhDM8FT-=MAKNiNi5~o>qC-?)
z2J`pC+SRSnj#yroH62OY#9xR>A3z56SJ34)C8$-I+^dXLtyoThqlk!}#NFNeJ|H_h
zTIoPr{DR=5!Hng=g5GXIzMtBNbhs0nH<N~@zykI-*ZYgSjDY!Gd8-laT~VuUg;k`M
vm^|Oq96XWPA+G9CKhxho;!uORJIg+bOB^msNNnn0`hP_6*z{$@Hz(hwky>T0

literal 0
HcmV?d00001

diff --git a/dist/share/ca/kelvpn.master.2.pub.dcert b/dist/share/ca/kelvpn.master.2.pub.dcert
new file mode 100644
index 0000000000000000000000000000000000000000..01d0753bede2c4ea97fb7d41bdeae393eaffaf6d
GIT binary patch
literal 1285
zcmV+g1^W7clj0Fa3@{G?0002+0s#O3tONi6000000000000000000000000000000
z00000Yh`S9aBePbVRLk4axOA1aCKq;0000000000000000000000000tONi600000
z0RR91pv`jdqVun-0bgV+DDo<Nibs}+8>n>b=7?X)(*Ib9XN0ti+2(hT)Lk#D1LT|*
zW%ZfW*(|K^n=pMm4}8|q+)Jv`uRcpBF)VA;51}?&C(FbIxwYkz?d3%MN>90@LraKJ
zzmh~_=p&G9;qj(=w4h!Dd4k0tH-rFZM4BYa#f}vVSD<#z2q{D_<6qGs<3@#uW=rge
zLZtNO<mhls<MM2}d;6Yzs)jmA{H8wDGXRE)kMI2`v601$h+W5fK}mnQdI9@8ni<l-
zxr5fWcWoReJOcsx4Kn;_=V|7Zp@!%D#J5PLGF4~fA!uo?7c`VLkO6-#EJ=|e9tlw9
zC^FG!@SwkjZNM0dpb}93gp|tuM-8;&KAuvhp#XaKebc;Af~ch968R8ENHb8916x$D
z8(>8_E+I>-#!y3`_|GR#e}WK*$3uN_ENEW6mDqHkVpd<4m!k-+Py#Gf6Gx3ghuT6=
z-VqvS^Jmbf_ZR(U!dxZ|E)%k5FkfMi)A!nSSBv+DSwwc8_`!&Ez@85wlfe^Py(SZl
zPuM}3lPgx-N;=+?RANq^R)C`sxcKB@xN>kiZ=P@ZZC%jlp3U2l_a)_xB^%7dMlleF
z5=tE3NB`rRJ_4qg4HZZcK$Nj@gU%VRM<lqoaI9^dLY=Kcy|)odi=+T}>=jtH5JCKv
zjywZx5{ZmyG%*>`0I}Vs(jtO3ZG?$_Ou|0n-B_p1&Ut~p0)E1O<7{?tv?D$b5z(-@
zF5&0mTynFbNQx%$#MO{lwy`lasb}CqXi#j+7}~(bqL-Gq4WQ=2z}BSB-TZMESZ}J~
zZb``c+e4;%51AUbGE3qFOoJP?iMDAXSvE&@r`w0meMv8d*-cGj5qd+JQuD-F%L=gG
zefo~F<@s1oWequOhtcrBPD^0<EMY|4OBa)c6!Xj^o#e@53rAY|V$x6b#(8HvyxiHZ
z!z_9(9=N0b7yQic!0NY$RE3)ZV~hKl6aPa#I6B|qkr*B&*jbCM)GD);5Wvc7gCD~m
zWWVBw87^19-SvL|(T!(uLweX&#WA4-?=one_}4cqiDJ=4EgK)K<PU-+@q9n3yf8ll
zt|ZS_r&a_7{fCQyR1Dp~Y!pdK9MGKhzA1A1RftG}Du3{j%lW!%2^A2!NNM{1<Ug{E
zg7a|*c4>f}V#}TklEzRpR1D_l>!5>{`XgL}F8jo@K(a)9REDF<4kOEy+lGyf$|5h*
z!9fumrS(igJXw=#Er-J4xT5!V>Y>!~<Pz;__j4Q8{$t+8o{%UEw1);j0+zioI8x8P
zTg?-Bog<$F4mS?13qC6K{(kJ0sA~rqP{G-N4~28O4V^%8Z4t#2p>$puX<Xv^c4dO1
zqnMdokTCm4nqop?Ggr4w#wJxQ^&4Qkmd*aJhJFb^h91Gn9d?)|V>8!}z}ll`Z3Jl^
z&zr%7FBe4o0}R03K^y7J+AcHWyv0mKMMJn7bx@c5Vtz}e)IpQ>l<=w;Hr;jZ*OXEV
v+V5_9LT9jGqDO;Pl3X5Gg4YAFOVN*E)a&v;t?yfxV29>v!Z`;aVmj*^6WLpC

literal 0
HcmV?d00001

diff --git a/dist/share/ca/kelvpn.root.0.dcert b/dist/share/ca/kelvpn.root.0.dcert
new file mode 100644
index 0000000000000000000000000000000000000000..b19c7d90d3cdd3146cf571597d9804e79c96e677
GIT binary patch
literal 1285
zcmaKkZ8#GM0LR&um6G?>yp(G<(#n*Zw+eaL2%8~edhxRKB*PeECa)3ZmYl6)H?uX#
zTg^_xNHmrUjk?wo$Ayp#&r{rasjmCb*M1-V&+o(k`DK?+>0@@;>S}6eXsiIfZX@Wc
zeTOR-<5CmjZITias5Z9W`F-pBAO54@MN|lBPeUyZ6{++1njFq!vg?(N6D^Pd#f)aZ
z>X5N<tjZD%0y&WqCJXK(F)`q0l+x(UG%xPyB`|b<-k~1IGTjUH#iiBIpPT1vh}@AB
z`Q&CcBQ&Ddep#>i>aX+n0K0oRDeLM%{?1~KD4SG6NIOydCP{KK^41IxllBGJ^BJzv
z0Am9|*@Dh~8&1UbMCkKCLPj)@)?`ZF^^$*jF>3g+zk+FL@Gzb3NH=PA3s-meXz57;
zL>J~Ei#{3;H{|;RQn~R5wOobZ@Ll@J{=uj-Fj_uE&(ZwOc<tPoW649QBa~}Ozc5|V
z&lJ=9uP5(H@k}CH33Un@qftb^S?O3tuWe#=GKN7O5esuuGjUV0Qwz_Ai2AOB5O$-t
zydsC1<|;JPHD6SXJdKZa7$HN)aT=rg-T#i?duU)K0XB6?=y9DUMK5c*cnGUm63f(R
zliOV1r5IG9x&ym-xx&QoE^ujyN2WupcL1^$mJGNuv01=sjdkX&GU5%_1tY>1m8hw`
zpj{^|wDwIqXq5(?APujVa9`ETgF1CC!84C`_5_;@mY;Mhr`ulM@h7IPUXg{zeb~fA
zTUe@v2z|7&1+~3U@Tem!6`?r0j-KL>^CKt%;NE*n4T-On_8ladU1{nq8QqH?z;Thu
zDp!%{p3*u$oY>wcL6%chCI8T!_oCT%lx{HX6Lf0j`QLFlLTxbhP8`|0KP05aAg^RC
zqjqBVSe$qm$cEx`UJDr}CFc;;^pwhyCA3IlE}XN@eFWl_nnM-D35&d*ADBFCDfS)n
zqX%~#Ms!JYT)?#1pRgMZ225W^6u^hlPr`5TXU7NqDGur9i{&pfU7+A?&d982jtR)s
z7!78zCWi<OQcFfwH_dX*t?*3i5m$JMCjW-l#w%xJnPi)>YTs?MXeNW4yonc3&u#(c
zM{9y=)R+`I3r$ayvtyMjW0Ay?S?qgH-8k+U7&v5GuXmt=E|GrNa|Eka0N);jh{LOX
z6dD}m(;Cjb?R6r?V_N~YD>2sfjbuU5M8)dZ-7+_BmYK9j0l7F{sSCB;_|#?-FsmY(
zjGN(xl}W{YRbv&mWEU<WhqT$yJIC;d)1D!HzGV;Cck#er#6OiqIl~OH?GpsDb|$oX
zET-NxCdS(K0YT)xt%2D^ibx|LQr`{_g$bT~LYG~emKQ#=_QOm*b@TZ=?Q3MQqIKby
zIn-Lb607Mv<;%`Cf9IIB)iQW<vB_(m2s@uk5D!#%u9@0tecZX9wl}IS_^FnAtKaDR
z!vRu9!Sia^)zHiSy|C*8$9X_XkWYWv{RJn(bxgg#hcsGwlltkn_r~L8GSSpXqOR=o
z?$KVs;>y=p$v@4PsyyZSv+bGW?p&u1RADY_%Lu%d+0n$OrlzM)Ewyr*^TiF34viuU
zGxx15S(tZh$L_Z&m$6^W*+p50{lY2~Vge}v839L?kK^tAGTQnfz094z4~XfwI-J9c
t*>d;gqCy_Ozm3$FQ5Rml!a5%UZlADWu3AO4o%jntN;#l^gK#~Y@gJ+jN?iZ|

literal 0
HcmV?d00001

diff --git a/dist/share/ca/kelvpn.root.1.dcert b/dist/share/ca/kelvpn.root.1.dcert
new file mode 100644
index 0000000000000000000000000000000000000000..25404e6984c1747efd12309e597e6bc3fda81f02
GIT binary patch
literal 1285
zcmV+g1^W7clj0Fa3@{G?0002+0s#O3tONi6000000000000000000000000000000
z00000Yh`S9aBePgZ*O!iF#rGn000000000000000000000000000000tONi600000
z0RR91tu-A!wpTU+2_8Lvq^)O}trc;yXaGr%X^mjIhJ>;@l%gkL{gT=Qz2;aF=&3tp
z3@v{2UpLWKxrI??<<=K3r5C~^-ju8|2r{mFyygZIcO?xIJ?R<7aGH?MI{d16ArS^}
zm#>~6yjq|{q7AGN(8Z;H1fs&Ojv~h^+xSVe;sIip+W~~91W5hksw@qKnO~=OeA_zj
z;zRw+G&`MsBt;eKJQd^JjO63y;whH4J7srIm;@9}?LDCF`qRh{w(T+a)y?QSV?AD?
zN$Ot~hM`e#SHdI+<Di}k8WAOFLv5HEnmfuT8Y~y3y;Zzn0HftzSGTj=7%d(hc8Is$
zkVoHS0-go#4@Fr=Sl<bY)GuKpYzBQCd+DtCQI0_o-QR7$LG%@q_v7gv+fO-BwZ$Lp
zdBoCj+QhYeolD%6gY_FUNU<|JQ+=Son>FdEEM^YRYCH}3+t3)k9I!%1nAWYYI=={9
zkcb8<o_oBW4Tp1JcQL8Y;`PzVYnlm4WrT8lHp5dqL%Cm}ckc3LtZ^ONc0LGs;+ND6
zduW9VBS@f3Es}6M$wkFsUB=n<EG-ba`U#gb#KX3Q&|_ssbg8^dgGzyGg<Tm@7691q
zu5{LN@bQnd8;Ts$l;0wup~f;xVWcMjcTQzt(JjWstXtUNvEt*>is)*ld7HXg*~(uj
zMM(F9F+6ghUz@3t`?Z1IC42u?4<&bx93h>xCi6vi&l%xyV}`EXTq8u!Y3}dpUlys`
z_JAobu{uglJv$Qgxmxu>OF!%4gQMmj=Pd;nauyToM-|^(RCEg7OL%)-x$SrHVcUw1
z$!xNrPEE62V^{$w(vfbKt}H33RCM1-wV*ayM6Rugh{%i7DMF(`D&e5cdNRj^EKZjW
z87##PVeO}5Sg#(ib9co=$Q9u7s^>^s!9*&`_|s6DqW(0OnSOzU|3dP?D3ubaj}B$b
zqZqgt7fcun;2#Lkazk)LV3CIcxCqVjk9V*p1_yUu3_nc<TK;{@KoLzYr;RFP(!aIM
z(%q(y5<CX`V!{bKW!l^iUQU7~#2fDrjM!ha?x3OdPzG0eo{}ZFP5CED2a{b_8cKPD
z0<D}n?juLW0@zpJ-TZjb^k8iaFU*53^u-Y(Y=|Cw@e%Fl(P+wE#*fJC<?1q}N{?9X
zj<kiWA6Y~Vo>s^*>g)qve)#IOLy979oJf@Ue+wxuIiKJ`L`XH5BJoh+LxF+pUyZ3^
z39Zxc=<I~oW?4ofV8ZUZz8b{$3v9GiJuK~syx^}}JColDywn|8XU!7xhcnZzl}uZ{
zXqpQAJWQ0pg&g0dU8w~OSJ?2#*1WR)*Dl~fhB_cj@;j*&<8=MGd0ZrYF`XQXkXIS-
zZ&Pl5{rGxxSC6Vka`+QlySovF8tY#}6hNkeKJkgX0zSN$IxfN4Q9V_(l@T)lUa237
zk5ggi^4!;&R+6|s8IH5iybR?Q(X&}$T?*kd9)v3_SSnZSpr?1t<9vQ9$IR+|E!W#%
vUzEpWXx+16uMdPGZ}>@&ME~H|oT}S>K?`9o0xg=>;=C;J^yuqv6AF@Ea7<9F

literal 0
HcmV?d00001

diff --git a/dist/share/ca/kelvpn.root.2.dcert b/dist/share/ca/kelvpn.root.2.dcert
new file mode 100644
index 0000000000000000000000000000000000000000..476844c3a3e3ce8ba317b20e55f49391376b265f
GIT binary patch
literal 1285
zcmZpe{7BH9$AF)afq~%z6OdfP0%YL<*{L~Y1$lZ!`S~S!MtIc0%mEo}!d4r6e(sEq
zJl8g+)U(!e9qHcMHeasZK+f8P*<S1El&BZRvtmDO@}8RRvj63!-4RvIg3nikXg@ug
zvVQlDgFP$E=3Th8%i)*y?#+u{Dl7ZkbUY?{p+QBahVf6NOQn8aYjXNT`OK9P3$+Tf
z_0IfvY})+H-gN3iwRd_GIwo-~Pm!IN-e_dOV;@wi!uM9%<EzO3xijW6G5@XMzFF~_
zdAb%~n740b%v-0o%dW?4P-VZ;5I6r{u11D=2iu?AhGhmPU4j-FdRuk1+T2_#7iQwL
zTt{Q!dbX4s&#KtYq|N)I9+-YLQQbS|%+)@%*%D#F3*KJ5ADO#*a=nvXf=jjUw0Sdc
zeE7I0#`ye7P9~wVXLz>B?`RcORu@+ZTV0sCA!Kf-wp#$>am(+&=5=1wV%z6Ct#U!N
zg7KDfOoBX?$HfB9UVp_KHO*bZXusY3_00Q|_TA0S?h{_j8v4x0Lc@kJDDFG!ok`bN
z?so3$b$+{0Z^g=rKbC8*e((Fhkf)Kpw7LEC`DE)VkMkuw)p90_A{i#=mfx%mXVB|f
zyut0l!5MwKm#x)Ox~ZPCeyxDu7b~gUyqQ)JC*!A1TXNnn(7<|qQqx&u!H%HoLCTZ*
zX6{ycw97oRK{BI%-hyWJWUE@)`@66B95z%}OmWyK>HVo?e*TskHNh3~d7&HSW_Eb=
ziSa5GT(>f2-Tz^to^_G*7v;AXF1|YNwQu^X^ViM<9<7jFX%Va*Hs=7pi1{CLGpC2Y
zCvtYzPm%n~9o491e$R04m%Y;u=bt~95wJDG(JpU`ucM~<B=HFvA8xHP3vo35{_nx@
z&s^&w4j=EDeLb07dv{abR)x!lW<5KkVUZSBU^!#jC)tTTP0BBXtand6R#E=wo%!9B
za(kWUevs!b72rLkakOC5)b|ICF2@wI?Df$%*=d|>5bj{5srxtGy7h)!j7+`Vs)AyZ
zT~d1|PMmtobc$xenO#+Gn|5SK|NH7&c_HD<f4hUfBKw}7*>IsPJKs3MYVj2lE(h86
zyxCWFybLXz{jly*PnNx=#^EEZvC_RNuQvw!n|!;V7AW>+N^WzJX!g{5yYkmf`fa|_
zb`tMJktnr-tqMy+cj=v(U|!Cq{{NxDlit6&Cw4x*#h~?OvggY+-fOQsj;)x`6g%VN
zyEWpMDkNUL(&DmOdZhVk0{^G3S3KoiDH{{MC@@LtbZYcVd<c1dyM=R|^I;v4mr4!q
zPfP8R`gqeL=lB=rp9hRo{%~+ques)Q{W{BSmE&iB7tcIiahLyTxM})|No!mrw|vhC
zZ7$2SdOZKB@tMiY3+;Hsb))|%cfBi`@qK@1v*xL&T0a-v%j=dOUB)lnXZln3gKy0I
ziVcbSb3%js%L`f5jut4f&KH>Sd3WTi^|{A<_bLRxnZCpI@lGz&8XbezCZ=*NjDb@a
z48L)?yv>@XS;sH+;iP56gS5t@nH>I8%clPoEPGdAneAG-?y5>}@;>kI&2P3RO=7D4
zP&Kdk$m4j`2@wmYe2DqqzuPXMGQ#1wNb!UFQ4`XqE}wB@;Re%1?W(2UV$uVDWvqQH
txouXQ?%T8kD~5X^{GLhs%(ipSxRClLI7ocDK$=+0Dtq&5-)o9{V*#8~LXZFe

literal 0
HcmV?d00001

diff --git a/dist/share/configs/network/KelVPN.cfg.tpl b/dist/share/configs/network/KelVPN.cfg.tpl
new file mode 100644
index 000000000..b18fcc394
--- /dev/null
+++ b/dist/share/configs/network/KelVPN.cfg.tpl
@@ -0,0 +1,32 @@
+# KelVPN net config
+
+# General section
+[general]
+id=0x1807202300000000
+name=KelVPN
+native_ticker=KEL
+gdb_groups_prefix=kelvpn
+
+
+# Possible values: light, full, archive, master, root
+node-role={NODE_TYPE}
+seed_nodes_aliases=[kelvpn.root.0,kelvpn.root.1,kelvpn.root.2]
+seed_nodes_hostnames=[0.root.kelvpn.com,1.root.kelvpn.com,2.root.kelvpn.com]
+seed_nodes_addrs=[1807::2023::0000::0000,1807::2023::0000::0001,1807::2023::0000::0002]
+seed_nodes_port=[8079,8079,8079]
+require_links=3
+
+#[auth]
+#type=ca
+#acl_accept_ca_list=[]
+#acl_accept_ca_gdb=
+#acl_accept_ca_chains=all
+
+[dag-poa]
+#events-sign-cert=kelvpn.root.0
+
+[esbocs]
+#blocks-sign-cert=mycert
+#minimum_fee=1.0
+#fee_addr=myaddr
+
diff --git a/os/debian/config b/os/debian/config
index 35f8f93d1..7eaaad5e9 100755
--- a/os/debian/config
+++ b/os/debian/config
@@ -62,6 +62,15 @@ reconfigure|configure)
       db_go || true
    fi
 
+   db_input critical cellframe-node/kelvpn_enabled || true 
+   db_go || true 
+
+   db_get cellframe-node/kelvpn_enabled
+   if [ "$RET" = "true" ]; then
+      db_input critical cellframe-node/kelvpn_node_type || true 
+      db_go || true
+   fi
+
 
 #   db_input critical cellframe-node/kelvpn_minkowski_enabled || true 
 #   db_go || true 
diff --git a/os/debian/postinst b/os/debian/postinst
index f79eb82bb..90ecf1a07 100755
--- a/os/debian/postinst
+++ b/os/debian/postinst
@@ -217,7 +217,37 @@ if [ "$RET" = "true" ]; then
     db_get cellframe-node/backbone_node_type || true
     NODE_TYPE=$RET
     sed -i "s/{NODE_TYPE}/$NODE_TYPE/g" $DAP_NET_CFG  || true
-    echo "[*] Enabled Backbone"
+    echo "[*] Enabled Backbone Mainnet"
+fi
+
+
+# Init Backbone
+NET_NAME="KelVPN"
+
+db_get cellframe-node/kelvpn_enabled || true
+if [ "$RET" = "true" ]; then
+    
+    DAP_CFG_NET="$DAP_PREFIX/etc/network/$NET_NAME.cfg"
+    DAP_CFG_NET_TPL="$DAP_PREFIX/share/configs/network/$NET_NAME.cfg.tpl"
+    DAP_NET_CFG=""
+
+    if [ -e "$DAP_CFG_NET" ]; then
+        if (( NEW_MINOR > OLD_MINOR )); then
+            echo "Need update KelVPN.cfg ..."
+            DAP_NET_CFG="$DAP_PREFIX/etc/network/$NET_NAME.cfg"
+        else
+            echo "No need to update KelVPN.cfg, write as new"
+            DAP_NET_CFG="$DAP_PREFIX/etc/network/$NET_NAME.cfg.dpkg.new"
+        fi
+    else
+        DAP_NET_CFG="$DAP_PREFIX/etc/network/$NET_NAME.cfg"
+    fi
+
+    cat $DAP_CFG_NET_TPL > $DAP_NET_CFG || true
+    db_get cellframe-node/kelvpn_node_type || true
+    NODE_TYPE=$RET
+    sed -i "s/{NODE_TYPE}/$NODE_TYPE/g" $DAP_NET_CFG  || true
+    echo "[*] Enabled KelVPN Mainnet"
 fi
 
 mkdir -p $DAP_PREFIX/var/log     || true
diff --git a/os/debian/templates b/os/debian/templates
index 99817d3b0..68c05cbc9 100755
--- a/os/debian/templates
+++ b/os/debian/templates
@@ -142,14 +142,14 @@ Template: cellframe-node/backbone_enabled
 Default: true
 Choices: true, false
 Type: select
-Description: Backbone: Enable network
+Description: Backbone Mainnet: Enable network
  Backbone Mainnet: Enable network auto load on start
 
 Template: cellframe-node/backbone_node_type
 Type: select
 Default: full
 Choices: full, light, master, archive, root
-Description: Backbone: Node role
+Description: Backbone Mainnet: Node role
  Select node role:. 
  Light - Synchronize only local wallets 
  full - Sync all its cell
@@ -157,6 +157,26 @@ Description: Backbone: Node role
  archive - Sync all the network
  root - Special predefined root nodes, usually produces zerochain and acts like archive as well
 
+Template: cellframe-node/kelvpn_enabled
+Default: false
+Choices: true, false
+Type: select
+Description: KelVPN: Enable network
+ KelVPN Mainnet: Enable network auto load on start
+
+Template: cellframe-node/kelvpn_node_type
+Type: select
+Default: full
+Choices: full, light, master, archive, root
+Description: KelVPN Mainnet: Node role
+ Select node role:. 
+ Light - Synchronize only local wallets 
+ full - Sync all its cell
+ master - Allow to store values in chains and take comission, sync all shards that will need to be synced
+ archive - Sync all the network
+ root - Special predefined root nodes, usually produces zerochain and acts like archive as well 
+
+
 Template: cellframe-node/enable_python_plugins
 Default: false
 Choices: true, false
diff --git a/version.mk b/version.mk
index 5f0e2a0dd..5912a71e6 100644
--- a/version.mk
+++ b/version.mk
@@ -1,3 +1,3 @@
 VERSION_MAJOR=5
 VERSION_MINOR=2
-VERSION_PATCH=240
+VERSION_PATCH=241
-- 
GitLab