forge-event-chain 0.27.0
A small example package

Event Chain: An Event System Built on Forge

Quick Setup
---
1. Go to your python environment

2. `pip install forge-event-chain`


Run
---

Before running event_chain, make sure your local forge is running properly.

1. Add event_chain config in your forge config.
    ```toml
    [app]
    name = “Event-Chain”
    version = “0.26.9"
    path = “~/.forge/event_chain”
    host=“localhost”
    forge_port=8210
    ```

2. restart forge to activate the updated config.

3. deploy transaction protocol:
```elixir
data="EgtldmVudF9jaGFpbhgBIgZDb3JlVHgqI3Byb3RvY29sIGluZm9ybWF0aW9uIGZvciBldmVudGNoYWluMiUKD2VjOnM6ZXZlbnRfaW5mbxISRm9yZ2VBYmkuRXZlbnRJbmZvMi0KE2VjOnM6Z2VuZXJhbF90aWNrZXQSFkZvcmdlQWJpLkdlbmVyYWxUaWNrZXQ6twJzeW50YXggPSAicHJvdG8zIjsKcGFja2FnZSBmb3JnZV9hYmk7CgptZXNzYWdlIEdlbmVyYWxUaWNrZXQgewogICAgc3RyaW5nIGlkID0gMTsKICAgIC8vIHNhbWUgYXMgZXZlbnQsIGZpeGVkCiAgICBzdHJpbmcgc3RhcnRfdGltZSA9IDI7CiAgICBzdHJpbmcgZW5kX3RpbWUgPSAzOwogICAgc3RyaW5nIGxvY2F0aW9uID0gNDsKICAgIHN0cmluZyBpbWdfdXJsID0gNjsKICAgIHN0cmluZyB0aXRsZT03Owp9CgptZXNzYWdlIEV2ZW50SW5mbyB7CiAgICBzdHJpbmcgZGV0YWlscyA9IDE7CiAgICBieXRlcyBjb25zdW1lX2Fzc2V0X3R4ID0gMjsKfUI1LS0tCm5hbWU6IGV2ZW50X2NoYWluCmNoZWNrOiBbXQp2ZXJpZnk6IFtdCnVwZGF0ZTogW11S2wMKEF-eMoHnfhQNpxMvmIXN7jgSxgMfiwgAAAAAAAADdZHPa9RAFMfnJTXdbqs7m9CKIBgKHsSy_cWCSy9pl2gL6w9q69Ekm7y0A_nF7KykN_HWW-kt0ENPnv0TRPDgRcS_oPgXSP-CzmwjFsGBz7yZL-99Zx7v6cvdVUK07S138_mAZUgI6ZG_a0aiScBcbRO7YAUu93OOe2XHfYeZ6B8GLOu8Qc7iow6WMnFT7D-R4aOk9cBNWMl4538VDc9jWZx73nSYpwVLUE-jbjMQgrPhWOBoJh5noWB5NjLSPBonaKRByPNRM8KCYxgIjAzkSZAdtA5QeNc5E8upMEiSKZYx0VZ_9oZjlkTIPSXP3sgjpJ9HqudzCa17riRtiQG0Ipq5SMFemdc39Pm7F2vdre5ud-jy_Q94irDi6JZj6hV5YRNwnGdEt-CVFCzwHU3uRUU184sN7w37K5yoy08K5xZ8qmzN_GXDZwt-qCcuCVxc-1AKvycKhQa94a6_FnxPfW4nLVS8X8-lKZn95wxuOclxJLfUHJRW99eqe7wjuV3rqm6u9mj8mbeKAyaUz2PJw_Is9H0_8v2T9DucDu4NHs0tfTvu9Y5pHL-NdxbDBRJtT6-TK2OjvdlQAgAAUqcKChADjaUi8xKYLx6VJEtQz-R2EpIKH4sIAAAAAAAAA21Ue0xTVxi_p7fW2ypw2ttSCxTvIGwTodRJVUY2L8zSEdQxEIgbeCm9l9qlr9zeK2w-ZjQiJr4mUylDZH_oYnDEx9ji1CkOdI8sumXBus3JtiwmU6fExxyaZee2R0fiTvK75zu_73e-833ny7llr1TNIgjN9lJnyaKFvqBAEARaPx5pCCQCMGjN2ulaC2EMiyEpVBD_ekJ-W7jJJrQiQYlUMw_J3kJmpsXp97X6RFtZSPQKJU0-m3OFEJTKg80hiuN8aOK4yZ5QIOzzC2SAd-jckiT6mmRJiGib5aBH8oWCEU0gxMt-QRNwe8RQRMcLYVHwuCWB1wii3x30pngFiUto4iENHMcLzW7ZL3ERSZQ9Escl4TQqBDEo-DUJegomnUE5oBEFXvYIeo4LCJGI2ytwqKxwhON03OMgGl7whHjBjLdVKnU3yc22BXFa1AjB_3U747RIBoWWJ3ylss-PfFMmZG_M_-_Egln56Bby7fnqgDsc0chhHpWdkf9kfQV2LJy0wu2XUedeQkeiHnyMegBx_7oQpiMkARglVIYsCBi7iSwmTebR5xyljipHk1OsWSfsEICdJWnWQEaJxQwBWNZFkDSoRAQNGlkV-oajUGU4Q4C1yZBgXTCuhZMZyJJqL8GqaZbMRroopOwMBNsVsU5PgF7WxaDNh6IMWhsIcJp12dH6QmINwehUGI8AER8PoSajTDzEragdSWgIKMga6Kh9MWMHlD5OmhBpQAxkAUXHGTMBKCPrYkkNTEoFlClBIlkqrgptrwSUWbkDnQWJpyVKhY2AsiRIJE6beAVUejzHNAZQGUVJ6eTzCEwpCWeXkgTJ0tnsbDrKLLaHAWWNF2tFwsyiJCsSWkn7VAZpCXVCzyC9EelZXWZ2FIZhFHZNcrE0NDNqkjUqd8ZABr2yaklcojStPBBWZh6BQtAhTEFQKX1ESMZ2Cu6z8j6NCDTmUxFMyptFmIZgxvyjOAqfjpCh7HW2xs9qxz4L9qdhm5gQA-DYZswbJ5xjwOcDnJMB28nYVsZUBD22dXhN4BpVWK8qk4NKPoWYs-I58_EfKSMwA-enwjWAR_xCn4T2gs8JQr2vtXu4uiL0vR328Nzl1E270ttPnV42TuYmfzgEDriCI7z3SOu1mO_6hYb-k7eOWq6WdBx6Icv45diqnnNXQ2eJQ8Ra7nzZyNGbMwaL97VHDi6qfHHJ3TnPboAp_e_mxlb-dDh3Zt145vw6-txT2xc0lp-Qh_YM3hvuXLrmjfVdDUfMqXt71h9UNQT33JUHdSev9p55H2ZQtUNgYGyL1v7gkrp-s45edcIx3tv3zerf1339x6rbAzlvTz9G58VGhrc8jBT2aG33YczQ3LZxef-lypVX2kxPj7UUHbjrfu2arU3eWbune2zrD_DgsS86232V3q-arQHT1py_Xr1dDxfy1Y1Ft7pfz5uX-21f1qC-alp9CSn9knf8YYq2TnMjL63csXvly_trNv24Ud8nD-d4Opu2DfSXxU7kfGos-ejypvMd8wqvzxq-c0q36zNbjPvNUfvn0Nip3eF3rOSDw-uyGoo3gJZ_Bj7QXx5ftrdzx66_e0a39LXvkzqug-8W_PrzvYya6nM3PTO3zemtf3Pp2eQGunuYyFl63MvsvVN770rXxbnvFd5ffXG0uO7G_cj-uZ_Mj7UVzGl5ZmfAtNoysrxiROhIX0MOVIWuEf8CWyu2DZgGAABS2QMKEL9kqab7D4foQ8Ae-PlcdpYSxAMfiwgAAAAAAAADdZHPa9RAFMfnJTXdbqs7m1BFEBsKHkRZW2WhxUvaNbWFrUptrybZ5KUdzC9mZ0uO4q230lvAQy_e_RNE8OCllP4FpX-B-Bc4s01pERz4zI8v733nPd7a261FQrRXq-7KZp9lSAhZItdrSqJJwFxsk7mCFfisl3PcLjvuPmaitxewrNPbw_BjB8sVsaNyv0paD92ElYx3_hPd8DyWxbnnTYZ5WrAE9TTqNgMhOBuMBA6n4lEWCpZnQyPNo1GCRhqEPB82Iyw4hoHAyECeBNluaxeFdxkztpwIgySZYBkTbVWuNxixJELuKXn6RpwsspdHqt9jCa37rSRtiQG0Ipo5T8FemNVf6rP3zp93V7tb3YHLdz7jEcKCo1uOqVfkjU3AcV4T3YJ3UrDAdzS5FxXVzB82fDLsn3CoHmcUji34VtmaeWHDdwtO1Rd_CJxf-lAKv8cKhQa94a6_F3xbFbeRFup8UM-kKZn-5w5uOY5xJLfUHJRW99eqe7wjuV3rKm-m9mhczVqdfSaUzxPJo_JL6Pt-5PuH6Qkc9e_3H888_XWwvHxA4_hDvDEf3iXR-uQL8hfzyJ1MTAIAAFLaAwoQIQtNbp-LbRT-sp6q0RsdsBLFAx-LCAAAAAAAAAN1kc9L3EAUx-clNu6u1p1N2Bah0CD0UJRVWxZceokuaRW2P1D32iSbmehAfjE7KzmW3ryJt0APnnr2T5CCBy-l-BdI_4LSv6Aza0ql4MBn3syX974zj_f6_e46Qtr2lrv5dsBSihDqoX-rLtEkYK63kJ2znK72M073i457RFPRPwxY2hnmJBC0QwuZuCmGGzJ8lTSfujErGO_cV1HzPJZGmefNhlmSs5jqCek2AiE4G00EHdejSRoKlqVjI8nIJKZGEoQ8GzcIzTkNpQMxKI-D9KB5QIV3mzO1nAmDOJ5hKRMt9WdvNGExodxT8tydPIT6GVE9n0lw1XMpaUkMwCXSzCUM9lpbf6W3H9-86G51d7sjlw8_01MKa45uOaZeonc2Asd5g3QLPkjBAt_R5J6XWDO_2fDJsC_hRF2uMZxZcF7amvnThgsLfqgnfiO4ufXBGH5NFQw1fMdd3xN8X31uJ8lVfFLNpSGZ--8MbjHNcSQP1ByUVvXXrHpckDysdFU3X3nU_s5bxQETymdZ8qz4Evq-T3z_JPkOp4PFwfP5lavjXu8YR9HHaGcpfITI9uxL9AcvPYFHUAIAAFKkCwoQz_0ModkAWWwMnIIM3kYX1RKPCx-LCAAAAAAAAANtVAtQE1cU3c2GsIaPS778XdTWgg2EAhWltUs0RAURUSu16BKyD4zkx2ZXUmmxdeqn1YJ2HDSKCkXtbxzRIh2rMoLG2vpFGLCtgtZfxz-KtlasfQlrZcbuzNm979xz77v33XmbMS03EUH8xTp9-tQssw0gCBKPPH_CITAIVBbSlogoHKydsyf43ia7Jd5RGA9cCJLOzUqFkgqoi47SW8wuMxufYWeLQXqhOd4AbIA1WmaaTSWAw2nabCuy07S_yW51mC0AszIpUiPHseZCngPOIUW8zcSZ7TanxGpneAuQWI0m1u6UMsDBApORA4wEsBajrXhoMeDoAY0vpYymGVBk5C0c7eRY3sTRdJBQSiZgbcAiGaADBFJv460SFjC8CYTQtBU4ncZiQMPOHE6altL_JZEwwGRngFoIy_G2XsgXxU_00awE2P7XrffRLGYDZS_4dLzZAn0Bg6pXaJ7vmJCogaeg0WrEVqPDKeEdDGw7UvNifwlaQei30Gjh4eQmwC3hHJrgHAhhfhsghkEEoYQbEcmGEyipVWJpmFJ94bUUXUpuSqGenbUEfA5QLYXJKRnmRrJJBKUoA4LJ0RxIyNECSgTfDjchkrUi6IfBBEIZCJ-W8CcJChMXI5RYTmEjoM5N4FqSQFd7xdIQBK2lDCQMbnCTcC1D0IOUQQvXpwfWBHohkPBlICDvSyHG3KQvxV23FkrkBIoTlEzu1maTWhQP8ZFKSMogQ1AoLvcxagTFFZSBwiREkArFlQMklKmErmB4DoqrvWcgDYPi0IFWiQIUDxsgoTh88BHgEb4aw0kUjxwbFIGNgyB1GJGkwxCMko-gkuRuMlvrQPEoX7NRUBg9NigKCqMwbSAJtYh4QE9CvQLqKWn0CDfhINzEBj8DJSfUpBijFN4zIwkS3rIZHDvTO7TJVof3y0DgEFKIAAiRd44QwYI9VJiz934qIOQCr4JQeu8sRCiEWuCf5fHyERCR3li9y7fXCsEXJvjDBRsZlAMVcqsFXjFoH5mwPyrUJBPsYMH2PoEQIYItFdaI0KNI0IsyeJu3nmSBixK-0c9-SJLFfwChPpHQA_qMzzJzMFYE_0VD_nTVeKpbKtu1xLJNyVN_nTsyrxKfV6eORkoLxsbc-iips3GzuCwqLbWyqbw7YHb3-tKaxtKJezOqc08Nqyru_6V3bWJT0aonFdP7zvVn-ZUf23tQNu6K64alzFGD3U-4nbpzl7VO153X3lhfcagY-1L3-9L8Cy14ZGCH2rStNzb1wYHLk97pd5X2Hff7rVZ17qfwkt3ugq8VE3au5j1p30qc9cfRmuRFDfY5_p1T53Zlj1MGzrnaXOWIAHFnHydM2bz1_Jt5l443jy7raV0wrL_QLO2Y--STiswcjXThylGGIa3zLs7UvBQXgjw49uHhp_vdnkVjqvg755dN8hzsmbBmSoOms1wh8ow8-cbGHd_vLbc5-n6ekkvWZQedYJjtMQUxNZevaYJPdgzHS-rb1l47vb03P71NHAam_aPHlv_4yrodHknLiT30psY11Uv72FaS15s2z6e2JG1dHf9p7IFKM7u-ML9t5baGHSpP0w-Vt_p7j5x--V7u0d36NeBp-uvzTEmM-r1Y5tEXR-_dOHpER8j3fZWJjlb5vZ3vr5IaV5V0qJbo1-rauJw998_c2Rn6TWZz5Wf7rp869Gjj3Z72y8Mffrf0Sj-my-uZ3jD7iHSr-PGKqlennZlV3f5X16UFri055X1hb5X4j7qeXNE1Pnf-ncPmq3X7Z2Q-0Wdp6qtnjK6tLVv89-Iwz03i_dDglgO7lBXdx87P7pif_sG6jzv1aubs8ua45bev5PuXs0nimLjJ6eFjut4df3F87EP1zTTZyH8BnSuRlQwHAAA"

Forge.Unsafe.LoadTxs.update_one(data,wallet)
```

4. simulate original data to start with:

   `FORGE_CONFIG=/home/User/forge_release.toml python3.7 -m event_chain.simulation.simulate`

5.  start event_chain application:

   `FORGE_CONFIG=/home/User/forge_release.toml python3.7 -m event_chain.runner normal`